本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
c++中定义了__cplusplus,C语言中没有该定义。所以可以用__cplusplus区别调用者程序是c语言程序还是c++语言写成的程序
示例:
#include <stdio.h>
int main()
{
#ifdef __cplusplus
printf("This is a c ++ program!\n");
#else
printf("This is a c program!");
#endif
}
如果用gcc编译的话,输出为:
This is a c program!
如果用g++编译的话,输出为
This is a c++ program!
示例2:根据不同语言的调用者引用不同的库文件(以下代码摘自memory.h )
if !defined(__cplusplus)
include <mem.h>
else /* __cplusplus */
if !defined(__USING_STD_NAMES__)
include <mem.h>
else /* __USING_STD_NAMES__ */
include <memory.stl>
endif /* __USING_STD_NAMES__ */
endif /* __cplusplus */
参考:http://blog.163.com/hbu_lijian/blog/static/1261291532012102582121528/