解析 答:#ifdef __cplusplus cout<<"c++"; #else cout<<"c"; #endif结果一 题目 如何判断一段程序是由C 编译程序还是由C++编译程序编译的? 答案 答:#ifdef __cpluspluscout相关推荐 1如何判断一段程序是由C 编译程序还是由C++编译程序编译的?反馈 收藏 ...
#endif 如果要判断已经编译的代码的编译类型,就用nm查一下输出函数符号是否和函数名相同。(相同为c,不同为c++。详解见下面) (2) 简单是说,由于c语言是没有重载函数的概念的,所以c编译器编译的程序里,所有函数只有函数名对应的入口。而由于c++语言有重载函数 的概念,如果只有函数名对应的入口,则会出现混淆,所以...
#ifdef __cplusplusextern "C" {#endif// C 代码#ifdef __cplusplus}#endif 头文件会被 #include 到 C 文件中进行编译,也可以被 #include 到 C++ 文件中进行编译。那么这里就可以使用 __cplusplus 来测试头文件是由 C 编译器还是 C++ 编译器编译的。 如果定义了 C++ 宏 __cplusplus,表示这段代码会将被...
我们通过编译一个程序test.c,代码如下,来了解编译程序的过程。 1.预处理(Preprocessing) -E选项:让编译器在预处理后停止,并输出预处理结果。 在本例中预处理结果就是将stdio.h 文件中的内容插入到test.c中,我们可以通过cat命令查看一下test.i文件的内容: 瞧!把头文件stdio.h的内容都插入到test.c文件中来了...
而由于c++语言有重载函数的概念,如果只有函数名对应的入口,则会出现混淆,所以c++编译器编译的程序,应该是函数名+参数类型列表对应到入口。注意,因为mian函数是整个程序的入口,所以mian是不能有重载的,所以,如果一个程序只有main函数,是无法确认是c还是c++编译器编译的可以通过nm来查看函数名入口如...
cout<<"c";#endif如果要判断已经编译的代码的编译类型,就用nm查一下输出函数符号是否和函数名相同。(相同为c,不同为c++。详解见下面)(2)简单是说,由于c语言是没有重载函数的概念的,所以c编译器编译的程序里,所有函数只有函数名对应的入口。而由于c++语言有重载函数 的概念,如果只有函数名...