求救~~为什么我定义的全局变量,在其他函数进行操作重新赋值后进过一个周期又被初始化,不能保存新值... 20
我是程序新手,公司刚给的任务,怎么都想不通,请各位大侠帮忙.......unsingnedintN1=100;unsignedintN2=100;....if(P3.0=...
我是程序新手,公司刚给的任务,怎么都想不通,请各位大侠帮忙.......
unsingned int N1=100;
unsigned int N2=100;
.
.
.
.
if(P3.0==0)
{
...
N1++;
....
}
if(P3.0==0)
{
...
N2++;
....
}
按按键的时候N1,N2的值是在往上面加,按完之后N1,N2的值又返回到100,这是为什么?请各位大侠解答......
我是程序新手,公司刚给的任务,怎么都想不通,请各位大侠帮忙......
includde(...).
unsingned int N1=100;
unsigned int N2=100;
main()
{
...
}.
if(P3.0==0)
{
...
N1++;
....
}
if(P3.0==0)
{
...
N2++;
....
}
按按键的时候N1,N2的值是在往上面加,按完之后N1,N2的值又返回到100,这是为什么?具体情况是我用UPD79F9211芯片写一个能改变占空比忽然频率的方波程序,N1N2是定时器的的值,N1改变频率,能改变占空比,但按按键的时候两者都改变了,之后过一会又回到了N1=100,N2=100的方波...跟没按按键前一样.....这是为什么,试了好多方法都不行.......
请各位大侠解答...... 展开
unsingned int N1=100;
unsigned int N2=100;
.
.
.
.
if(P3.0==0)
{
...
N1++;
....
}
if(P3.0==0)
{
...
N2++;
....
}
按按键的时候N1,N2的值是在往上面加,按完之后N1,N2的值又返回到100,这是为什么?请各位大侠解答......
我是程序新手,公司刚给的任务,怎么都想不通,请各位大侠帮忙......
includde(...).
unsingned int N1=100;
unsigned int N2=100;
main()
{
...
}.
if(P3.0==0)
{
...
N1++;
....
}
if(P3.0==0)
{
...
N2++;
....
}
按按键的时候N1,N2的值是在往上面加,按完之后N1,N2的值又返回到100,这是为什么?具体情况是我用UPD79F9211芯片写一个能改变占空比忽然频率的方波程序,N1N2是定时器的的值,N1改变频率,能改变占空比,但按按键的时候两者都改变了,之后过一会又回到了N1=100,N2=100的方波...跟没按按键前一样.....这是为什么,试了好多方法都不行.......
请各位大侠解答...... 展开
展开全部
我感觉是你的这两个定义放在了程序中的某个地方,且这个地方在程序运行过程中,会不断的执行,不是一次性赋值过后,下次就是保留的新值。不断的执行的话,就会出现你说的那样的情况的。比如说你放在了某个函数里面,或者是放在了主函数里面都是会出现这样的情况的。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main函数中有没有定义N1和N2?
如果有,那么main里的N1和N2只是局部变量,一但出函数就释放了。(各个C程序书中都讲到的:局部变量如与全局变量重名那么局部变量将代替全局变量的含义。)
否则就不知道了。
如果有,那么main里的N1和N2只是局部变量,一但出函数就释放了。(各个C程序书中都讲到的:局部变量如与全局变量重名那么局部变量将代替全局变量的含义。)
否则就不知道了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果想定义一个变量只被初始化一次,下一次运用的是上次的计算后的值,那么这个变量要定义成静态局部变量,即在函数内定义如下static unsingned int N1=100;
静态全局变量是定义在函数外。
静态全局变量是定义在函数外。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本人觉得你的问题都写得有点不清,if语句是包含main函数里的还是在其它的函数里面啊?还要考虑你定义的变量到底是否是全局变量!那你要把那程序都写出来,那样才能给你清楚的解决这个问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用static关键字,而不是在于全局变量。
前++比后++要好,如果不考虑特殊运用的话。
前++比后++要好,如果不考虑特殊运用的话。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询