导航:首页 > 源码编译 > 怎么判断程序编译

怎么判断程序编译

发布时间:2022-10-05 05:43:38

① 怎样判断一段程序是由C编译程序还是由C++编译程序编译的

简单的说,由于C语言是没有重载函数的概念的,所以C编译器编译的程序里,所有函数只有函数名对应的入口。而由于C++语言有重载函数的概念,如果只有函数名对应入口,则会出线混淆。所以C++编译器编译的程序,应该是函数名+参数类型列表对应到入口。
注意,因为main函数是整个程序的入口,所以main是不能重载的,所以,如果一个程序只有main函数,是无法确认是C还是C++编译器编译的。
可以通过nm来查看函数名入口。
如一个函数
int foo(int i,float j)
C编译的程序通过nm查看
f 0x567xxxxxx (地址)
C++编译程序,通过nm
f(int,float) 0x567xxxxxx

② 如何判断一段程序是由c 编译程序还是由c++编译 程序编译的

ANSIC标准中有一个__cplusplus标识符,当你编译C++程序时,这个标识符就会被定义;当你编译C程序时,这个标识符不会被定义。这样,你就可以检查程序是不是用C++编译程序编译的,请看下例: #ifdef __cplusplus /* Is __cplusplus deftned? */ #define USING_C FALSE /* Yes,we are not usingC*/ #elSe #define USING_C TRUE /* NO,we are usingC*/ #endif 当对上例进行编译预处理时,预处理程序首先检查标识符__cplusplus是否已被定义——如果C被定义,它就将USING_C赋值为FALSE;反之,它就将USING_C赋值为TRUE。此后,你就可以在程序中检查USING_C的值,并由此判断程序是不是用C++编译程序编译的。

③ 如何判断一段代码是C编译程序还是C++编译程序

答案:
#ifdef
__cplusplus
cout<<"c++";
#else
cout<<"c";
#endif
人家HR问的是编程手段来判断,判断啊!!!
又不是要你来说教,好不好,各位真是不知所云。。。。。

④ 如何判断一段程序是由C 编译程序还是由C++编译程序编译的

以下是在论坛中看到的两种解释: (1)如果是要你的代码在编译时发现编译器类型,就判断_cplusplus或_STDC_宏,通常许多编译器还有其他编译标志宏, #ifdef __cplusplus cout<<"c++";#else cout<<"c";#endif如果要判断已经编译的代码的编译类型,就用nm查一下输出函数符号是否和函数名相同。(相同为c,不同为c++。详解见下面)(2)简单是说,由于c语言是没有重载函数的概念的,所以c编译器编译的程序里,所有函数只有函数名对应的入口。而由于c++语言有重载函数 的概念,如果只有函数名对应的入口,则会出现混淆,所以c++编译器编译的程序,应该是函数名+参数类型列表对应到入口。 注意,因为mian函数是整个程序的入口,所以mian是不能有重载的,所以,如果一个程序只有main函数,是无法确认是c还是c++编译器编译的可以通过nm来查看函数名入口如一个函数int foo(int i, float j) c编译的程序通过nm查看 foo 0x567xxxxxx (地址) c++编译程序,通过nm查看

⑤ 关于如何判断gcc之类的编译器的编译结果

我们再使用gcc编译的时候可以让他的输出信息保存到文件当中

gccmain.c-omain&>status.txt

上面的命令就是将gcc编译的信息保存到status.txt文件中,然后我们再程序中读取文件,看文件是否有内容,没有内容就说明没有报错和警告,编译成功。有内容就对每一行内容进行判断,看是warring还是error,只有warring也代表编译成功,有error代表编译失败,然后把这些报错信息都打印出来就好了。

下面看一下例子:

⑥ 如何判断一段程序是由C 编译程序还是由C++编译程序编译的

以下是在论坛中看到的两种解释: (1)如果是要你的代码在编译时发现编译器类型,就判断_cplusplus或_STDC_宏,通常许多编译器还有其他编译标志宏, #ifdef __cplusplus cout<<"c++";#else cout<<"c";#endif如果要判断已经编译的代码的编译类型,就用nm查一下输出函数符号是否和函数名相同。(相同为c,不同为c++。详解见下面)(2)简单是说,由于c语言是没有重载函数的概念的,所以c编译器编译的程序里,所有函数只有函数名对应的入口。而由于c++语言有重载函数 的概念,如果只有函数名对应的入口,则会出现混淆,所以c++编译器编译的程序,应该是函数名+参数类型列表对应到入口。 注意,因为mian函数是整个程序的入口,所以mian是不能有重载的,所以,如果一个程序只有main函数,是无法确认是c还是c++编译器编译的可以通过nm来查看函数名入口如一个函数int foo(int i, float j) c编译的程序通过nm查看 foo 0x567xxxxxx (地址) c++编译程序,通过nm查看

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

一般情况来说,C语言代码是可以用C++编译器编译的,但是C编译器,就一般不能编译C++代码。
自己区分的话:
1、包含头文件格式:
#include
和有using namespace的,都应该属于C++的内容。
而#include也应该是C++,因为它属于C++的库,由于C++代码可以应用C语言的函数库,所以比较难区分。
比如#include的,不一定就是C语言代码

⑧ 如何判断一段程序是由c 编译程序还是由c++编译程序编译的

通常的编译C程序的软件也可以编译C++的程序,C++也是建立在C的基础上的。通常C语言的文件是以(.c)为后缀的,而c++的文件基本都以(.cpp)为后缀的。关于如何区分还要看程序里面的某些关键的函数,头文件等来区分。

⑨ 如何判断一段程序是由C编译程序还是由C++编译程序编译的

C编译时定义了_cplusplus,C++编译时定义了_STDC_#ifdef _cplusplus /*判断是否用C++编译器?*/ #define USING_C 0 /*是用C编译器*/ #else #define USING_C 1 /*是用C++编译器*/ #endif #include <stdio.h> int main() { if(USING_C) printf("C++\n"); else printf("C\n"); system("pause"); return 0; } 编写C与C++兼容的代码所需的宏如下:#ifdef __cplusplus extern "C" { #endif // 具体的代码 #ifdef __cplusplus } #endif

阅读全文

与怎么判断程序编译相关的资料

热点内容
解压小熊手机壳 浏览:342
成都市区建成面积算法 浏览:658
智能家居单片机 浏览:95
买男装用什么app好 浏览:853
文件夹合并了怎么拆开 浏览:257
波段副图源码无未来函数 浏览:86
livecn服务器地址 浏览:257
程序员这个工作真的很吃香吗 浏览:844
程序员和数学分析师待遇 浏览:678
压缩气弹簧怎么拆 浏览:321
华为公有云服务器添加虚拟ip 浏览:209
程序员和运营哪个累 浏览:24
抖音安卓信息提示音怎么设置 浏览:454
光速虚拟机的共享文件夹 浏览:248
程序员培训机构发的朋友圈真实性 浏览:744
天干地支简单算法 浏览:299
下载个压缩文件 浏览:300
普通人电脑关机vs程序员关机 浏览:630
米酷建站源码 浏览:115
氢气app怎么搜搭配 浏览:619