keil C中,本来编译正常的代码在屏蔽掉一个子函数中的调用另一个子函数的语句后data增大

keilC中,本来编译正常的代码在屏蔽掉一个子函数中的调用另一个子函数的语句后data增大导致编译不过,代码段修改应该是code内存改变啊,求解,不屏蔽就可以编译通过且工... keil C中,本来编译正常的代码在屏蔽掉一个子函数中的调用另一个子函数的语句后data增大导致编译不过,代码段修改应该是code内存改变啊,求解,不屏蔽就可以编译通过且工作正常

void Cmd0x01Fun(void)
{
uchar length;
// length = LoadtData(&UsartBufTx[10]); //装入所需数据并返回数据域长度
ComHeadFun(length,controllerCtrCode); //打包一个帧的所有信息
SendArray(UsartBufTx,length+12); //串口1发送帧
}
展开
 我来答
一剑出血
高粉答主

2013-03-10 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
你可能没有接触过编译原理。
注释掉LoadtData()的调用却不注释掉该函数本体,则编译器在编译时仍然会编译该函数,并且由于缺少对该函数的显式调用,编译器将假定该函数是被隐式调用的(例如通过函数指针),因此不得不更加小心地将该函数用到的局部变量单独封块,从而导致原本可以被复用的data段无端地多出一个块来。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式