1.stm32åifçåºå«
stm32åifçåºå«
STMç¨åºä¸ifå#ifçåºå«
ï¼1ï¼⾸å ï¼ifæ¯æ¡ä»¶è¯å¥ï¼#ifæ¯é¢å¤çæ令ï¼åè½ç¸åï¼æ§⾏çæ¶æä¸å
ï¼2ï¼ä¸¾ä¾1ï¼
#define A 2
#if A==2
void foo()
{
printf("A == 2");
}
#else
void foo()
{
printf("A != 2");
}
#endif
int main()
{
foo();
}
举ä¾2ï¼
è¿æ ·ä¼è¾åº A == 2
å¦ææ¹å#define A 2å°±å¯è½ä¼è¾åºA != 2
#if.
a
#else
b
#endifï¼å ¶å®è¿ä¸ªå°±æ¯éæ©ç¼è¯é£é¨åï¼åif-elseçåºå«å°±æ¯ï¼ç¼è¯çæ¶åè¿⾏éæ©çï¼å¦ææ¯açè¯ï¼bé£ä¹å°±æ ¹æ¬ä¸å»ç¼è¯ï¼⽽if-elseæ¯å ¨é¨ç¼è¯å¥½çï¼ç¶ååå»è¿⾏
é£ä¹é®é¢æ¥äºï¼⽤#if #elseçé¢å¤ç⽅å¼ï¼å¦ææ¯açè¯ï¼é£ä¹å¨ç¨åºè¿⾏ä¸ï¼æ¡ä»¶æ»¡⾜elseäºï¼é£ä¹ä¼æ§⾏båï¼ï¼
çæ¡æ¯ï¼ä¸ä¼ï¼åå å¨ï¼3ï¼ä¸è§£é
ï¼3ï¼#ifçä½⽤ï¼æäºç¨åºå¨è°è¯ãå ¼å®¹æ§ãå¹³å°ç§»æ¤çæ åµä¸å¯è½æ³è¦éè¿ç®åå°è®¾ç½®⼀äºåæ°å°±⽣æ⼀个ä¸åç软件ï¼è¿å½ç¶å¯ä»¥éè¿åé设置ï¼æææå¯è½⽤å°ç代ç é½åè¿å»ï¼å¨åå§åæ¶é ç½®ï¼ä½å¨ä¸åçæ åµä¸å¯è½åª⽤å°⼀é¨å代ç ï¼å°±æ²¡å¿ è¦æææç代ç é½åè¿å»ï¼å°±å¯ä»¥⽤æ¡ä»¶ç¼è¯ï¼éè¿é¢ç¼è¯æ令设置ç¼è¯æ¡ä»¶ï¼å¨ä¸åçéè¦æ¶ç¼è¯ä¸åç代ç ã
æ以ï¼⼀æ¦é¢å¤çæ¡ä»¶é¨åç¼è¯åï¼å¨è¿⾏ä¸åªæ§⾏符åæ¡ä»¶çé¨å代ç å
å³å¯ä»¥è®¾ç½®ä¸åçæ¡ä»¶ï¼å¨ç¼è¯æ¶ç¼è¯ä¸åç代ç ï¼é¢ç¼è¯æ令ä¸ç表达å¼ä¸Cè¯⾔æ¬⾝ç表达å¼åºæ¬⼀⾄å¦é»è¾è¿ç®ãç®æ¯è¿ç®ãä½è¿ç®çåå¯ä»¥å¨é¢ç¼è¯æ令ä¸ä½¿⽤ãä¹æ以è½å¤å®ç°æ¡ä»¶ç¼è¯æ¯å 为é¢ç¼è¯æ令æ¯å¨ç¼è¯ä¹åè¿⾏å¤ççï¼éè¿é¢ç¼è¯è¿⾏å®æ¿æ¢ãæ¡ä»¶éæ©ä»£ç 段ï¼ç¶å⽣ææåçå¾ ç¼è¯ä»£ç ï¼æåè¿⾏ç¼è¯ã
#if ç⼀è¬å«ä¹æ¯å¦æ#if å⾯ç常é表达å¼ä¸ºtrueï¼åç¼è¯å®ææ§å¶ç代ç ï¼å¦æ¡ä»¶1æ⽴æ¶å°±ä»£ç 段1ï¼æ¡ä»¶1ä¸æ⽴åçæ¡ä»¶2æ¯å¦æ⽴ï¼å¦ææ¡ä»¶2æ⽴åç¼è¯ä»£ç 段2ï¼å¦ååä¾æ¬¡ç±»æ¨å¤æå ¶å®æ¡ä»¶ï¼å¦ææ¡ä»¶1ï¼Né½ä¸æ⼒åä¼ç¼è¯æåç代ç 段n+1ã
ï¼4ï¼#ifç好å¤ï¼ ç³»ç»è£åª
ç³»ç»è£åªæ¯é对系ç»ç⽤éï¼å¯¹ç³»ç»çæºä»£ç è¿⾏⼀ä¸ä¼åï¼åå°ä¸å¿ è¦çåè½ã
/*--------------------------------------------------------------------*/
#includeâstdio.hâ
#define TEST_2 1
int mainï¼ï¼
{
int a=ï¼
#if TEST_2
int *b=&a;
*b = ;
#endif
a++;
}
/*----------------------------------------------------------------------*/
å¦ä¸⾯çä¾⼦ï¼å¯¹äºæäºåè½ä¸éè¦ï¼æ们åªé对äºçåè½TEST_2çå®å®ä¹æ¹æ0ï¼ç¶åéæ°ç¼è¯å°±⾏äºãå½ç¶⼀è¬å®å®ä¹æ¯æ¾å¨⼀个ç¹å®ç⽂件ï¼è¿⾥为äºç®åå°±åå¨⼀èµ·ï¼ï¼è¿æ ·å¤⾯ç⼈åªéè¦æ´æ¹é£ä¸ª⽂件æ对åºçå¼å°±⾏对系ç»è¿⾏è£åª⽽ä¸éè¦å ³⼼å ·ä½ä»£ç ï¼å°±⾏å®ç°è£åªã
ï¿¥
5.9
ç¾åº¦æåºVIPéæ¶ä¼æ ç°å¨å¼é,视频解析源码iappç«äº«6亿+VIPå 容
ç«å³è·å
STMç¨åºä¸ifå#ifçåºå«
STMç¨åºä¸ifå#ifçåºå«
ï¼1ï¼⾸å ï¼ifæ¯æ¡ä»¶è¯å¥ï¼#ifæ¯é¢å¤çæ令ï¼åè½ç¸åï¼æ§⾏çæ¶æä¸å
ï¼2ï¼ä¸¾ä¾1ï¼
#define A 2
#if A==2
void foo()
{
printf("A == 2");
}
第 1 页
#else
void foo()
{
printf("A != 2");
}
#endif
int main()
{
foo();
}
第 2 页
举ä¾2ï¼
è¿æ ·ä¼è¾åº A == 2
å¦ææ¹å#define A 2å°±å¯è½ä¼è¾åºA != 2
#if.
a
#else
b
#endifï¼å ¶å®è¿ä¸ªå°±æ¯éæ©ç¼è¯é£é¨åï¼åif-elseçåºå«å°±æ¯ï¼ç¼è¯çæ¶åè¿⾏éæ©çï¼å¦ææ¯açè¯ï¼bé£ä¹å°±æ ¹æ¬ä¸å»ç¼è¯ï¼⽽if-elseæ¯å ¨é¨ç¼è¯å¥½çï¼ç¶ååå»è¿⾏
第 3 页
é£ä¹é®é¢æ¥äºï¼⽤#if #elseçé¢å¤ç⽅å¼ï¼å¦ææ¯açè¯ï¼é£ä¹å¨ç¨åºè¿⾏ä¸ï¼æ¡ä»¶æ»¡⾜elseäºï¼é£ä¹ä¼æ§⾏båï¼ï¼
çæ¡æ¯ï¼ä¸ä¼ï¼åå å¨ï¼3ï¼ä¸è§£é
ï¼3ï¼#ifçä½⽤ï¼æäºç¨åºå¨è°è¯ãå ¼å®¹æ§ãå¹³å°ç§»æ¤çæ åµä¸å¯è½æ³è¦éè¿ç®åå°è®¾ç½®⼀äºåæ°å°±⽣æ⼀个ä¸åç软件ï¼è¿å½ç¶å¯ä»¥éè¿åé设置ï¼æææå¯è½⽤å°ç代ç é½åè¿å»ï¼å¨åå§åæ¶é ç½®ï¼ä½å¨ä¸åçæ åµä¸å¯è½åª⽤å°⼀é¨å代ç ï¼å°±æ²¡å¿ è¦æææç代ç é½åè¿å»ï¼å°±å¯ä»¥⽤æ¡ä»¶ç¼è¯ï¼éè¿é¢ç¼è¯æ令设置ç¼è¯æ¡ä»¶ï¼å¨ä¸åçéè¦æ¶ç¼è¯ä¸åç代ç ã
第 4 页
æ以ï¼⼀æ¦é¢å¤çæ¡ä»¶é¨åç¼è¯åï¼å¨è¿⾏ä¸åªæ§⾏符åæ¡ä»¶çé¨å代ç å
å³å¯ä»¥è®¾ç½®ä¸åçæ¡ä»¶ï¼å¨ç¼è¯æ¶ç¼è¯ä¸åç代ç ï¼é¢ç¼è¯æ令ä¸ç表达å¼ä¸Cè¯⾔æ¬⾝ç表达å¼åºæ¬⼀⾄å¦é»è¾è¿ç®ãç®æ¯è¿ç®ãä½è¿ç®çåå¯ä»¥å¨é¢ç¼è¯æ令ä¸ä½¿⽤ãä¹æ以è½å¤å®ç°æ¡ä»¶ç¼è¯æ¯å 为é¢ç¼è¯æ令æ¯å¨ç¼è¯ä¹åè¿⾏å¤ççï¼éè¿é¢ç¼è¯è¿⾏å®æ¿æ¢ãæ¡ä»¶éæ©ä»£ç 段ï¼ç¶å⽣ææåçå¾ ç¼è¯ä»£ç ï¼æåè¿⾏ç¼è¯ã
#if ç⼀è¬å«ä¹æ¯å¦æ#if å⾯ç常é表达å¼ä¸ºtrueï¼åç¼è¯å®ææ§å¶ç代ç ï¼å¦æ¡ä»¶1æ⽴æ¶å°±ä»£ç 段1ï¼æ¡ä»¶1ä¸æ⽴åçæ¡ä»¶2æ¯å¦æ⽴ï¼å¦ææ¡ä»¶2æ⽴åç¼è¯ä»£ç 段2ï¼å¦ååä¾æ¬¡ç±»æ¨å¤æå ¶å®æ¡ä»¶ï¼å¦ææ¡ä»¶1ï¼Né½ä¸æ⼒åä¼ç¼è¯æåç代ç 段n+1ã
第 5 页
ï¼4ï¼#ifç好å¤ï¼ ç³»ç»è£åª
ç³»ç»è£åªæ¯é对系ç»ç⽤éï¼å¯¹ç³»ç»çæºä»£ç è¿⾏⼀ä¸ä¼åï¼åå°ä¸å¿ è¦çåè½ã
/*--------------------------------------------------------------------*/
#includeâstdio.hâ
#define TEST_2 1
int mainï¼ï¼
{
int a=ï¼
第 6 页
#if TEST_2
int *b=&a;
*b = ;
#endif
a++;
}
/*----------------------------------------------------------------------*/