您的位置:程序门 -> 硬件/嵌入开发 -> 片机/工控



【求助】keilc编程 奇怪问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


【求助】keilc编程 奇怪问题
发表于:2007-09-24 14:29:34 楼主
在我的程序里有一个数组   unsigned   int   y[25]={0,1,2,3,6,5,4,0,1,2,3,6,5,4,0,0,1,0,0,1,0,1,0,1,0};

把他定义在函数外面编译通过   并且和硬件调试好用。
把他定义在函数里面编译通过   可是和硬件调试不好用。

这会是什么原因,是不是分配的空间乱了,找不到。还是我的编译器不好用。
发表于:2007-09-24 15:59:561楼 得分:0
把他定义在函数外面编译通过   并且和硬件调试好用。
把他定义在函数里面编译通过   可是和硬件调试不好用。

这里有一个访问权限问题,

定义在外面空间是全局的,你什么时候访问都是合法确定的值
定义在函数里,它是一个局域变量,在没有进入调用的函数时,访问这部分空间是非法的,得到的值是不确定的,有的调试工具直接拒绝你访问,可能这就是不好用的原因吧...
发表于:2007-09-26 09:39:252楼 得分:0

把他定义在函数外面编译通过   并且和硬件调试好用。
把他定义在函数里面编译通过   可是和硬件调试不好用。

这里有一个生存期问题,

定义在外面空间是全局的,你什么时候访问都是合法确定的值
定义在函数里,它是一个局域变量,   函数第一次被调用,写入的值,在函数第二次被调用时,
可能被改写了。

局部变量在它的生存期结束后,它占据的memory可能被分配用于其它变量,其值将改变


快速检索

最新资讯
热门点击