C++与C变量或函数的混合调用
第一部分:C++调用C变量或函数
如果我想在C文件中实现某些功能,在CPP文件实现对这些功能的调用,我该如何做呢?
先将程序贴出来,然后在分析:
g++ -c -I. inct.cpp
执行过程分析:g++编译时,预先定义__cplusplus这个宏,所以extern "C"有效,inct.h被作为一般的C++程序编译成功,但是编译后的变量和函数可以在C或C++程序中使用。
2、将test.c用C编译器编译:
gcc -c -I. test.c
gcc中没定义__cplusplus,所以,test.c中对inct.h中所有功能引用都没添加了extern “C”,这样一来,C语言程序正常引用这些函数或变量。
特别注意 extern "C"是C++中才有的,在C中只有extern,用在变量前,表示变量的声明,不表示变量的定义。
3、将所有编译中间结果链接起来
g++ test.o inct.o -o test或者
gcc test.o inct.o -o test -lstdc++