久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1359|回復: 5
收起左側

C語言局部變量自加的問題

[復制鏈接]
ID:997026 發表于 2022-4-17 21:14 | 顯示全部樓層 |閱讀模式
如下的C語言函數:

viod time_compute(void)
{
   unsigned char  time_set =1;
   if(key_num)
   {
      time_set ++;
      if(time_set >1)
      {
         time_set =0;
      }
      key_num=0;
   }
}

key_num是通過按鍵操作的,按一下,time_set自加1,實際測試時發現,time_set沒有執行(沒有發生自加),后來稀里糊涂的在unsigned char time_set=1;之前加了static, 變成這樣:static unsigned char time_set=1; 程序就正常了,按按鍵時,可以自加了。

本人小白,初學者,有點搞不明白,為啥會這樣呢?
回復

使用道具 舉報

ID:944091 發表于 2022-4-17 22:22 來自觸屏版 | 顯示全部樓層
加了static進入函數只對unsigned char time_set=1操作一次,不加的話每次進入都操作=1,當你自加1了,下次一進入又=1,相當于沒自加
回復

使用道具 舉報

ID:624769 發表于 2022-4-17 22:29 來自觸屏版 | 顯示全部樓層
把 =1 去掉即可。
回復

使用道具 舉報

ID:624769 發表于 2022-4-17 22:33 | 顯示全部樓層
把函數內的 unsigned char  time_set =1; 放到函數外, 然后, 把  函數內的 unsigned char  time_set =1; 去掉即可
回復

使用道具 舉報

ID:491577 發表于 2022-4-18 00:31 | 顯示全部樓層
static unsigned char time_set=1; static是靜態變量的意思。簡單點說就是只能夠被本函數使用的全局變量。 time_set=1只是被執行一次,之后time_set的值一直都會被保存,就像是全局變量。但是別的函數不可以使用這個變量。
回復

使用道具 舉報

ID:123289 發表于 2022-4-18 16:34 | 顯示全部樓層
關鍵是:在調用viod time_compute(void)之前,time_set =?
明白這一點就OK了。
調用前:局部變量,是不確定的,=0是對你客氣了。
靜態變量,你不動它,它不變,所以它會是上次退出時的值。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色在线看 | 波多野结衣亚洲 | 日韩国产一区二区 | 中文字幕在线电影观看 | 久久久久一区 | 黄色网址免费在线观看 | 亚洲国产成人av好男人在线观看 | 中文字幕第一页在线 | 91精品国产综合久久香蕉麻豆 | 国产精品www| 欧美多人在线 | 亚洲一区二区三区免费视频 | 91精品国产色综合久久不卡98口 | 成人在线免费观看视频 | 久久久www成人免费精品张筱雨 | 日韩精品在线观看一区二区 | 欧美一区免费 | 羞羞羞视频 | 一区二区三区精品视频 | 精品九九 | 欧美在线观看一区 | 国产精品久久久久久久三级 | 五月天综合网 | 欧美精品乱码久久久久久按摩 | 欧美成人a | 午夜视频大全 | 午夜日韩 | 欧美日韩一区精品 | 久久精品国产亚洲夜色av网站 | 欧美日韩精品 | 色欧美日韩 | 亚洲一区二区在线免费观看 | 精品一区av| 欧美综合色 | 色资源在线 | 国产精品久久久久久久久免费樱桃 | 欧美在线一区二区三区四区 | 中文字幕在线看人 | 欧美中文在线 | 日韩国产欧美 | 一区二区国产在线 |