(原創) 在Embedded System开发该用C还是C++? (C/C++) (C)
C++的功能强大无庸置疑,程序写起来也比C高阶且精简很多,但代价是编出的执行档越来越臃肿,我在Linux下写了两个以下的小程序作编译,功能完全一样,但执行档大小已经有差别了。
HelloWorld_C.cpp
HelloWorld_CPP.cpp
HelloWorld_C.cpp
1
#include <stdio.h>
2
3
int main() {
4
printf("%s","HelloWorld!!\n");
5
6
return 0;
7
}
#include <stdio.h>2

3
int main() {4
printf("%s","HelloWorld!!\n");5

6
return 0; 7
}HelloWorld_CPP.cpp
1
#include <iostream>
2
3
int main() {
4
std::cout << "HelloWorld!!" << std::endl;
5
6
return 0;
7
}
#include <iostream>2

3
int main() {4
std::cout << "HelloWorld!!" << std::endl;5

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


浙公网安备 33010602011771号