找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2265|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

MCU初學(xué)者請教一個C語言代碼if(0)語句問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:532071 發(fā)表于 2019-5-10 15:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
5黑幣
#ifndef FALSE
        #define FALSE 0
#endif
這個是在頭文件里
volatile uint8_t b10MsFlag=FALSE;

int main(void)
{
RCC_Config();
KeyLampInit();
Timer2_Init(Timer2_10ms_Int);
SoundInit(&sign,u8SoundCnt,SOUND_MAX_CNT,SOUND_PIN,SOUND_NUM);  
//IWDG_Config(10000);
u8ASteps=1;
while(b10MsFlag==0){
  KeyLampRowClr(LAMP_ROW_1,(uint32_t*)LAPM1_COLOR);
  KeyLampRowClr(LAMP_ROW_2,(uint32_t*)LAPM2_COLOR);
  KeyLampRowClr(LAMP_ROW_3,(uint32_t*)LAPM3_COLOR);
}
while (1)
{
  //IWDG_Feed();
  if(b10MsFlag){
   b10MsFlag=FALSE;
            if(KEY_PRESS==GetKeyVal(50)){
                bStart=1;
            }
            if(bStart){
                Step1Handle();
                Step2Handle();
                SoundLoop(&sign);
            }
        }
其中的 if(b10MsFlag) 這個是if(0)的意思嗎 ?是不是條件永遠(yuǎn)為假進入不了{(lán)后面的內(nèi)容呢?
我看程序代碼是這樣理解的,但是我運行這個程序是可以進入的。
有老師幫忙解惑一下嗎?


最佳答案

查看完整內(nèi)容

對,用volatile修飾的話,說明這個變量是易變的,可能在程序的其他地方被修改。你在其他c文件里邊找找這個變量。只有變量被改變?yōu)榉?值,下邊的if(){}才會執(zhí)行。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:400380 發(fā)表于 2019-5-10 15:46 | 只看該作者
初學(xué)STM 發(fā)表于 2019-5-13 14:26
老師,你的意思是其他地方有改變了這個值,并不是說一直都是0是嗎?

對,用volatile修飾的話,說明這個變量是易變的,可能在程序的其他地方被修改。你在其他c文件里邊找找這個變量。只有變量被改變?yōu)榉?值,下邊的if(){}才會執(zhí)行。
回復(fù)

使用道具 舉報

板凳
ID:347954 發(fā)表于 2019-5-10 20:52 | 只看該作者
程序死在第一個while處,while(b10MsFlag==0),一直執(zhí)行
回復(fù)

使用道具 舉報

地板
ID:213173 發(fā)表于 2019-5-10 23:53 | 只看該作者
關(guān)鍵字 volatile 的存在,說明變量在程序執(zhí)行中可被隱含地改變。
回復(fù)

使用道具 舉報

5#
ID:532071 發(fā)表于 2019-5-13 14:26 | 只看該作者
wulin 發(fā)表于 2019-5-10 23:53
關(guān)鍵字 volatile 的存在,說明變量在程序執(zhí)行中可被隱含地改變。

老師,你的意思是其他地方有改變了這個值,并不是說一直都是0是嗎?
回復(fù)

使用道具 舉報

6#
ID:525068 發(fā)表于 2019-5-13 22:04 | 只看該作者
可能是上面一個if語句沒有實現(xiàn)
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表