Add some C code.

This commit is contained in:
Jesse Brault 2024-11-22 17:10:34 -06:00
parent c0dc9e794e
commit 91ab5ced3c
4 changed files with 20 additions and 0 deletions

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
/target /target
main main
.idea .idea
*.o
*.so

5
build Executable file
View File

@ -0,0 +1,5 @@
#!/usr/bin/env bash
cc -c src/test.c
cc -shared test.o -o libtest.so
rustc -l test -L . src/main.rs

View File

@ -18,6 +18,10 @@ impl Greeter {
} }
} }
extern "C" {
fn print_num(num: i32);
}
fn main() { fn main() {
Greeter::new("Hello, Jesse!").greet(); Greeter::new("Hello, Jesse!").greet();
@ -42,4 +46,8 @@ fn main() {
bst.insert(0); bst.insert(0);
println!("{:?}", bst); println!("{:?}", bst);
println!("find result: {:?}", bst.find(0)); println!("find result: {:?}", bst.find(0));
// calling some C
let find_result = bst.find(3).unwrap_or(-1);
unsafe { print_num(find_result); }
} }

5
src/test.c Normal file
View File

@ -0,0 +1,5 @@
#include <stdio.h>
void print_num(int num) {
printf("[from c]: num is %d\n", num);
}