导航:首页 > 源码编译 > 判断c编译还是c编译

判断c编译还是c编译

发布时间:2022-01-15 14:18:42

❶ 如何判断一段程序是由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

❸ 怎样区分一个文件是C编译的,还是C++编译的

如果有msvcrt.dll,说明调用了c语言库函数
如果有msvcp*.dll,说明调用了c++标准库

❹ 怎么判断一段程序是C编译程序的还是C++编译程序的

c++的程序,一般包含这句声明:using namespace std;
c++的主程序入口为:int main(int argc, char *argv[])
而c语言的程序入门为: int main(void)

❺ 如何判断一段程序是由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++编译程序

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

❼ 怎样辨别是用C编译的代码,还是C++编译的代码

首先:要看你的编译环境,有的编译环境是区分C/C++的,而像VC++这样的,就不区分,兼容。

一般情况来说,C语言代码是可以用C++编译器编译的,但是C编译器,就一般不能编译C++代码。

自己区分的话:
1、包含头文件格式:
#include<iostream>
和有using namespace的,都应该属于C++的内容。
而#include<iostream.h>也应该是C++,因为它属于C++的库,由于C++代码可以应用C语言的函数库,所以比较难区分。
比如#include<stdio.h>的,不一定就是C语言代码。

2、出现class定义的类的,无疑是C++代码。

3、应用到STL,模板等特性的,也应该算是C++代码。

不应该强行区分,因为本来C++就是对C的扩展,如果强制用C语言编写程序,则可以再看一些C语言的书,重点看出两者的不同。

❽ 如何判断一段程序是由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++编译程序编译的

简单的说,由于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++编译环境编译完成的

可以用PEID试下,还有如果文件编译的时候带编译信息是能够查到的,前提是要有一定的基础,对于creaker来说这应该还是比较容易识别的,你可以到看雪上看看或寻求帮助

阅读全文

与判断c编译还是c编译相关的资料

热点内容
内网ntp时间同步服务器地址 浏览:181
香肠派对脚本源码 浏览:90
jsp服务器怎么转发 浏览:857
服务器和网站开发有什么区别 浏览:764
如何下载测试服务器 浏览:179
怎么教育孩子的app 浏览:172
交叉编译的输出文件 浏览:330
手机app怎么变更办税员 浏览:936
sql服务停用命令 浏览:912
为什么系统要用两个云服务器 浏览:680
两个pdf怎么合并 浏览:294
php查询为空 浏览:590
香港服务器丢包了怎么办 浏览:47
linux系统管理教程 浏览:645
共享文件夹怎么设置只读文件 浏览:297
小米添加云服务器地址 浏览:583
qt入门pdf 浏览:672
视频监控取消默认加密 浏览:295
云服务器怎么设置输入键盘 浏览:817
单片机支持多大mhz 浏览:44