判断一个程序是C编译的还是C++编译

2012-11-30 12:13:19 · 作者: · 浏览: 334

    如果编译器在编译cpp文件那么__cplusplus   就会被定义   如果是一个c文件在被编译那么__STDC__就会被定义

    __STDC__是预定义宏.当它被定义后,编译器将按照ansic标准来编译你的c程序.

    ANSIC标准定义了以下6种可供C语言使用的预定义宏:

    __LINE__                       在源代码中插入当前源代码行号

    __FILE__                       在源代码中插入当前源代码文件名

    __DATE__                       在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕

    __TIME__                       在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕

    __STDC__                       当要求程序严格遵循ANSIC标准时该标识符被赋值为1.

    __cplusplus

    标识符__LINE__和__FILE__通常用来调试程序;

    标识符__DATE__和__TIME__通常用来在编译后的程序中加入一个时间标志,以区分程序的不同版本;

    当要求程序严格遵循ANSIC标准时,标识符__STDC__就会被赋值为1;

    当用C++(www.cppentry.com)编译程序编译时,标识符__cplusplus就会被定义.