欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于C語言自加++代碼的疑惑 [打印本頁]

作者: hxdby    時間: 2022-3-25 14:21
標題: 關于C語言自加++代碼的疑惑
如下的程序,只要state_flag=1為真,state_cnt就從0開始自加. 想知道如果此時state為真,state_cnt=5,此時是state_cnt一直就等于5了,停止自加了,還是state_cnt當前的值被賦為5,然后從5為初值繼續開始自加??

unsigned int  state_cnt=0;
unsigned char  state_flag=1;
unsigned char  state=0;

int main(void)
{
state_flag=1;
while(1)
{
  ;
}


ISR_(timer_vect)  //定時器中斷,1s進一次中斷
{
   if (state_flag==1)
   {
      state_cnt ++;
      if(state)
       {
         state_cnt=5;
       }
   }
}

作者: Hephaestus    時間: 2022-3-25 14:59
代碼不全,無法判別。
作者: man1234567    時間: 2022-3-25 15:03
樓主想多了。
上面的程序是編譯不過去的
作者: wufa1986    時間: 2022-3-25 15:41
這不很簡單嗎,在5和6不停變
作者: hxdby    時間: 2022-3-25 15:51
man1234567 發表于 2022-3-25 15:03
樓主想多了。
上面的程序是編譯不過去的

上面的 程序只是個框架,別糾結是否能否編譯,沒必要把所有給出來,我的重點在于是否自加,是在討論邏輯問題
作者: hxdby    時間: 2022-3-25 15:52
wufa1986 發表于 2022-3-25 15:41
這不很簡單嗎,在5和6不停變

哪里來的6呢
作者: Y_G_G    時間: 2022-3-25 21:12
對于i++和++i,網上書本上都有說明的
但我個人并不會太過于糾結這個,如果我實在不理解,那我就用i=i+1;這就可以了,我完全可以做到整個程序不會有++運算
像你這個,如果是我,我肯定不會發帖子問,如果要知道哪個變量的值等于多少,我會直接輸出到串口,后面加上一條while(1);
直接通過結果來驗證自己的推測
作者: 51白加黑51    時間: 2022-3-25 22:11
第一次是從0開始自加,執行到if(state)為真時,重新賦值為5,到下次在執行時,就是從5開始自加,再次執行到if(state)為真時,又會重新賦值為5
作者: wufa1986    時間: 2022-3-26 08:15
hxdby 發表于 2022-3-25 15:52
哪里來的6呢

等于5以后,下次再入中斷有一個機器周期時間是6,然后又等于5
作者: yzwzfyz    時間: 2022-3-26 15:29
程序是一步步執行的!!!
你一步步的走走,答案就有了。
糾結什么叫呢?
作者: man1234567    時間: 2022-3-27 22:17
hxdby 發表于 2022-3-25 15:51
上面的 程序只是個框架,別糾結是否能否編譯,沒必要把所有給出來,我的重點在于是否自加,是在討論邏輯 ...

如果主程序不少括號,且定時器可以正常工作的話,按你的程序執行那個值永遠是不變的。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1