6
327
3061
论坛元老
使用道具 举报 送花
1
19
51
注册会员
宁阳*** 发表于 2026-4-10 21:24 看看是否有数组越界,之前我也出现过这种情况,后来发现是数组越界了。
第一步:debug第一步
第二步:初始化赋值操作一
第三步:初始化赋值完成,变成随机数
_奶*** 发表于 2026-4-10 09:27 所以你出现问题的测试工程呢?
Rex_D*** 发表于 2026-4-11 08:19 只是初始化时候赋值,还没进入main函数。变量默认就是被分配在xdata区域,xdata区域的变量出现u32赋值就 ...
宁阳*** 发表于 2026-4-11 22:54 能把程序发出来一下吗,便于分析
xdata unsigned char a = 1; xdata unsigned int b = 2; xdata unsigned long x = 0; // 只要加这个 //======================================================================== // 函数: void main(void) // 描述: 主函数程序. // 参数: None. // 返回: None. //======================================================================== void main(void) { a = 0xf0; b = 0x0f0f; x = 0xffeeffee; // 只要执行这句,前面两个变量就会变为随机值 while(1); }复制代码
Rex_D*** 发表于 2026-4-12 19:24
Rex_D*** 发表于 2026-4-12 19:26 1、程序初始化赋值a=1,b=2,x=0,debug显示不成功,都是随机数; 2、程序执行 a=0xf0,成功;程序执行b= ...
106
4345
9748
荣誉版主
无情的代码机器
Rex_D*** 发表于 2026-4-12 19:39 将a,b,x定义到idata或data区域,而非xdata区域,debug显示:初始化值和赋值操作完全正确; 费解了,换 ...
0
32
新手上路
erci*** 发表于 2026-4-12 21:57 不要用b,b有特殊含义
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2026-5-1 12:00 , Processed in 0.140347 second(s), 104 queries .
Powered by Discuz! X3.5
© 2001-2026 Discuz! Team.