c语言的问题?想知道程序的大小是怎么样的?

c语言的问题?想知道程序的大小是怎么样的?,第1张

基本没有办法计算

生成目标文件的过程如下

1. 预处理(Preprocessing)这一步需分析各种命令,如#define,#include,#if等。

2. 编译(Compilation) 这一阶段根据输入文件产生汇编语言,由于通常是立即调用汇编程序,所以其输出一般并不保存在文件中。

3. 汇编(assembly) 这一阶段将汇编语言用作输入,产生具有.o扩展名的目录文件。

4. 链接(linking)这是最册返后一个阶段,在这一阶段中,各个.o模块被放置在该可执行文件中的相应位置上。该文件引用的函数也放在该文件中。

所以决定最终大小的因素很多 语句的多少和程带迹序的大小没有直接关系 c的每一条语句基本都对应着长度不等的汇编语言段 而且作为高级语言 在编译成机器语言的过程中蠢姿并不是一句一句一一对应的 即便是汇编语言 也不完全是一一对应的

具体内容 请查阅编译原理相关书籍

class A

{

public:

static int a//不占空间

}

class B : public A

{

public:

virtual int get_num()//占4个字节大小

{

return a

}

private:

char *p//也是4个租哗

}

class C : public B//继承B的大小

{

public:

int get_num()//不占

{

return 2 * a

}

private:

B b//弊春行8+8

}

int main(int argc, char* argv[])

{

cout<森慎<sizeof(A)<<","<<sizeof(B)<<","<<sizeof(C)<<endl

return 0

}

一般人是不算ROM的大小,至多只是估计。因为一个完整的程序,不同的人,甚至同一个人,程序的思路方闷帆法不一样,程序大小会差比较多。而且你的程序,除了算法,还有其他的很多东东,如显示、按键、通信等等,这些可能比你的算法的程序量还要大得多。

所以建议你先用仿真(如PROTEUS仿真),选用足够大的滑孝ROM的单蚂让雹片机,编制完整的程序,就知道花了多少的程序空间。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12548804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存