This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335灵异事件,2个不用变量的定义影响程序执行结果!!!!?高手请进

很神奇的一个事情。定义两个不用的变量(INT16U X,INT16UY),而且是必须定义,否则程序中的一个有用结构体变量就是不对的。

我在PWM中断测量AD,函数中用了一个静态局部变量 static INT16U nCount,另外一个全局的结构体计数strAVG_SumTemp.Cnt【10】,结构体有十个不同的计数,结构体中的SumTemp.Cnt【i】和这个变量nCount同步计数中断的次数,当计数到一定值(10ms的计数个数)的时候清零。这个定值是用一个宏定义的。意外的发现,nCount计数打出显示是对的,但是其他结构体SumTemp.Cnt【10】的10个计数都是错的。但是只要不定义(INT16U X,INT16U Y)就会出问题,不对。定义了就是固定的160,何解!!当不定义(INT16U X,INT16U Y)发现那结构体计数值SumTemp.Cnt【i】就是不对,是个乱的,一会大一会小,而那个nCount计数却是对的160,按道理PWM中断周期是固定的16K,所以10ms应该是160个值。这两个变量是没有任何地方使用的,但是是个全局的。我试着随意的定义两个变量((INT16U A,INT16U B)代替原来的(INT16U X,INT16U Y)变量名,也是可以的,就是说必须要有两个那样的变量存在,即使是任意的定义。

nCount ++和那个结构体SumTemp.Cnt【i】++是同步的,两个语句挨着的,清零也是同步挨着的,为什么nCount是对的,结构体SumTemp.Cnt【i】是错的??