diff --git a/shell.nix b/shell.nix index ae3a692902c9607a4843c813ccb19001430d0746..ba1a6ce37ff568b8bfd966e1b397c9140b044999 100644 --- a/shell.nix +++ b/shell.nix @@ -5,5 +5,7 @@ binutils gnumake nasm tinycc + zig + zls ]; } diff --git a/zig-c-interop/Makefile b/zig-c-interop/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..b0e2753d5367fcfa90c7d7e0ce69c9cf2e2b5739 --- /dev/null +++ b/zig-c-interop/Makefile @@ -0,0 +1,2 @@ +default: + zig run -I. main.zig diff --git a/zig-c-interop/billy.c b/zig-c-interop/billy.c new file mode 100644 index 0000000000000000000000000000000000000000..95441568427fdd429c9c1a6a9f3620edcc80aa70 --- /dev/null +++ b/zig-c-interop/billy.c @@ -0,0 +1,3 @@ +#include "billy.h" + +int sum(int a, int b) { return a + b; }; diff --git a/zig-c-interop/billy.h b/zig-c-interop/billy.h new file mode 100644 index 0000000000000000000000000000000000000000..6142d6c27584d11b9650825938a4d9789dc74787 --- /dev/null +++ b/zig-c-interop/billy.h @@ -0,0 +1 @@ +int sum(int a, int b); diff --git a/zig-c-interop/main.zig b/zig-c-interop/main.zig new file mode 100644 index 0000000000000000000000000000000000000000..8d16cd12eb9442310a1309e1e51c00bf70e1a539 --- /dev/null +++ b/zig-c-interop/main.zig @@ -0,0 +1,9 @@ +const print = @import("std").debug.print; + +const billy = @cImport({ + @cInclude("billy.c"); +}); + +pub fn main() void { + print("Billy says 2+4={d}\n", .{billy.sum(2, 4)}); +}