(原創) 在Embedded System开发该用C还是C++? (C/C++) (C)

本文对比了C++与C语言在小型程序编译后的执行文件大小,指出尽管C++提供了更高的生产力和代码精简,但其执行文件的体积明显大于C语言,这对于资源受限的EmbeddedSystem环境来说是一个重要的考量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++的功能强大无庸置疑,程序写起来也比C高阶且精简很多,但代价是编出的执行档越来越臃肿,我在Linux下写了两个以下的小程序作编译,功能完全一样,但执行档大小已经有差别了。

HelloWorld_C.cpp
1None.gif#include <stdio.h>
2None.gif
3ExpandedBlockStart.gifContractedBlock.gifint main() dot.gif{
4InBlock.gif  printf("%s","HelloWorld!!\n");
5InBlock.gif
6InBlock.gif  return 0;  
7ExpandedBlockEnd.gif}

HelloWorld_CPP.cpp
1None.gif#include <iostream>
2None.gif
3ExpandedBlockStart.gifContractedBlock.gifint main() dot.gif{
4InBlock.gif  std::cout << "HelloWorld!!" << std::endl;
5InBlock.gif
6InBlock.gif  return 0;
7ExpandedBlockEnd.gif}


HelloWorld_C.o为5117 byte
HelloWorld_CPP.o为6431 byte

这样小的程序已经相差1Kbyte,更别说开发真正的应用程序了,所以语言越高阶,虽然生产力越高,但相对的trade-off就是档案越大,这在PC环境影响不大,但在Embedded System这种寸土寸金的环境,就很重要了,所以在Embedded System下开发,还是得用C这个古老的经典语言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值