C++编译器和C编译器编译的时候都干了什么不同的事??

menzi11 2012-04-12 05:10:41
同样的一段C代码,改扩展名.c和.cpp,
拿C++编译器编译出来和用C编译出来(两个都是GNU的),
居然差别超大,C++编译出来的比C编译的多出好多行汇编代码来,
难道C++编译器背着我干了什么见不得人的事情? 难道是加了异常处理和动态转型?
或者别的什么??
那如果是这样,像VS这种没有纯C编译器的东西编译C岂不是很吃亏???
谢谢!
...全文
263 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2012-04-12
  • 打赏
  • 举报
回复
y,cl.exe根据情况调用c1.dll或者c1xx.dll
menzi11 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

vc有纯c编译器:c1.dll,c++的是c1xx.dll
C++的stl库,启动代码更复杂,所以会有更多的汇编码,你是可以不用这些库的
[/Quote]

原来如此!我还以为VC里面没有c编译器呢...非常感谢!
另外,如果在VC里面我把扩展名改为.c,VC会自动调用cl.dll
对其进行编译吗? 谢谢~




额...感谢另外几位回复,我特意注明"纯C"代码...
结构体在C++里面形成的空构造函数会被优化掉的.
nice_cxf 2012-04-12
  • 打赏
  • 举报
回复
主要就是结构体那里的构造和析构
Lactoferrin 2012-04-12
  • 打赏
  • 举报
回复
vc有纯c编译器:c1.dll,c++的是c1xx.dll
C++的stl库,启动代码更复杂,所以会有更多的汇编码,你是可以不用这些库的
luciferisnotsatan 2012-04-12
  • 打赏
  • 举报
回复
函数命名规则不一样。
struct在C++里是类,也就是有自己的构造,析构函数等。
等等
evencoming 2012-04-12
  • 打赏
  • 举报
回复
库的问题。
比如 iostream和stdio.h就分别是完全不同大小的库。
否则,如果之用c,或者cstdio类似的东西,不用c++特有的一些特性,几乎一样

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧