extern "C" { fn abs(x: i32) -> i32; } fn main(){ unsafe { println!("{}", abs(-123)); } }
sub.h
#ifndef SUB_H #define SUB_H extern int gNumber; #endif
sub.c
int gNumber = 100; void func(void){ gNumber += 100; }
main.c
#include <stdio.h> #include "sub.h" int main(void) { func(); printf("gNumber: %d\n", gNumber); }
$ g++ -o test test.cpp sub.cpp && ./test
test.cpp: In function ‘int main()’:
test.cpp:5:5: error: ‘func’ was not declared in this scope
5 | func();
うーん、これはエラーになっちゃうな…