__cplusplus

本文为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/

你可能感兴趣的:(__cplusplus)