lyons 发表于 2018-12-11 18:57

请教一个C51问题,

一个C51程序,我在调试时把一个函数注销了,结果编译时占用数据存储器空间反而变大了。我想不通源代码少了数据存储器为什么会变大?

airwill 发表于 2018-12-11 22:01

嗯, 非常有可能啊, 因为这段代码还是编译了, 同时没有了那段代码的覆盖分析, 所以专用 RAM 反而更大.

ayb_ice 发表于 2018-12-12 08:38

极有可能:
注销的函数调用了多个子程序,注销后,这些子函数又没有被其它函数调用,导致这些函数的局部变量不能被覆盖分析(也就是不能与其它函数共享局部变量,只能独占内存单元)
解决办法:
将没有调用的函数都屏蔽掉

lyons 发表于 2020-2-14 19:53

ayb_ice 发表于 2018-12-12 08:38
极有可能:
注销的函数调用了多个子程序,注销后,这些子函数又没有被其它函数调用,导致这些函数的局部变量 ...

谢谢你的回复,我觉得这个可能性很大,下次我测试一下看看
页: [1]
查看完整版本: 请教一个C51问题,