我有一个包含C和C++代码的.cpp源文件.C代码不使用g ++编译,所以我需要使用gcc.
使用extern "C" {}
不起作用,因为这只是告诉编译器如何处理函数名称,我希望g ++完全表现为gcc的一部分代码,而g ++就像另一部分.
我知道我可以只把它们放在单独的文件,但后来我不得不创建一个与C代码的文件头能在其他C++文件中使用它,这是我想要避免的.我不希望除C++代码之外的任何人都可以看到这些函数.
那有意义吗?这甚至可能吗?谢谢!
将它们放在单独的文件中,并使用C++声明文件中的函数.您不需要创建标头.
C++代码(blah.cpp):
// C function declarations
extern "C" {
int foo(int x);
int bar(int x);
}
// C++ function definitions
int qux(int x) {
return foo(bar(x));
}
Run Code Online (Sandbox Code Playgroud)
C代码(blah.c):
// C function definitions
int foo(int x) {
return x * 3;
}
int bar(int x) {
return x * 2;
}
Run Code Online (Sandbox Code Playgroud)