 
- UID
- 121790
- 性别
- 男
|
本人初次使用CODEWARRIOR软件,写了一个很简单的子程序,如下Delay();COMPILE,MAKE,DEBUG通过,单步运行时,程序只在for(i=0;i<100;i++)来回执行,i的值会变化;不执行
x1=i+1;y1=i+1;在软件仿真和硬件仿真都是相同的现象;
DATA窗口显示: i 10 unsigned char
x1 < not allocated> unsigned char
y1 < not allocated> unsigned char
如果把x1,y1定义成全局变量(放在Delay()外定义),程序运行正常,x1;y1的值会变化;
我有点头晕,开始怀疑自己;好歹也写过几年的C51;不知是什么问题;CODEWARRIOR在定义变量时有什么要求,和标准C不一样吗?为这个问题,我找了1天的资料,也没有解答!!!
本人使用的是:CodeWarrior3.1;
请指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
void main(void)
{
Delay();
}
void Delay(void)
{
unsigned char i,x1,y1;
for(i=0;i<100;i++)
{
x1=i+1;
y1=i+1;
}
} |
|