有时候需要在c++的主程序中调用c语言实现的函数,其实还是挺方便的。
示例代码目录:
[root@localhost candcxx]# tree
.
├── hello.c
├── hello.h
├── main
└── main.cc
编译命令:
gcc -o main main.cc hello.c
执行测试:
[root@localhost candcxx]# ./main
Hello world!
FAQ:
1:__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码。
2:C和C++对函数的处理方式是不同的,为了在C++代码中调用用C写成的库文件,就需要用extern "C"来告诉编译器:这是一个用C写成的库文件,请用C的方式来链接它们
#include "hello.h"
int main() {
print_hello();
return 0;
}
#ifndef HELLO_H
#define HELLO_H
#ifdef __cplusplus
extern "C" {
#endif
void print_hello();
#ifdef __cplusplus
}
#endif
#endif
#include "hello.h"
void print_hello()
{
puts( "Hello world!" );
}