C的头文件:
/*-----------c.h--------------*/
#ifndef _C_H_
#define _C_H_
extern int add(int x, int y);
#endif...+库
而将c.h改为:
/*-----------c.h--------------*/
#ifndef _C_H_
#define _C_H_
#ifdef __cplusplus
extern "C..." {
#endif
extern int add(int, int);
#ifdef __cplusplus
}
#endif
#endif /* _C_H_ */
$ gcc cpp.cpp c.c...-lstdc++
源文件为*.c,__cplusplus没有被定义,extern "C" {}这时没有生效对于C他看到只是extern intadd(int, int);add函数编译符号成add源文件为...*.cpp(或*.cc,*.C,*.cpp,*.cxx,*.c++), __cplusplus被定义 ,对于C++他看到的是 extern "C" { extern int add( int ,int