一、整体代码
01.cpp
#include <iostream> #include <stdio.h> #include "add.h" using namespace std; int main(void) { add(1,2); return 0; }
add.c
int add(int x, int y) { return x+y; }
add.h
#ifndef _C_H_ #define _C_H_ #ifdef __cplusplus extern "C" { #endif extern int add(int, int); #ifdef __cplusplus } #endif #endif /* _C_H_ */
二、编译过程
gcc -c add.c
g++ 01.cpp add.o -o 01
./01
三、解释
由于C++中函数支持重载,C语言函数不支持重载,所以如果没有extern “C”编译出来的是C语言风格的函数,C++找不到。加上后能够编译出C++风格的函数,这样就能调用了