久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51頭文件REG51.H中__REG51_H__的條件編譯與STM32的#if !defined條件編譯
[打印本頁]
作者:
heise
時間:
2014-8-19 23:18
標題:
51頭文件REG51.H中__REG51_H__的條件編譯與STM32的#if !defined條件編譯
通常的51或的頭文件都會使用如下方式:
#ifndef __REG51_H__
#define __REG51_H__
//頭文件內容...
#endif
這是C語言里的條件編譯!
意思是,如果預編譯時沒有定義宏__REG51_H__,則定義該宏,然后編譯其后的內容,到#endif結束。其作用是防止頭文件嵌套包含時造成的重復編譯。
例如,兩個文件都包含了,第一次遇到#include 時,會包括處理此文件,處理的同時定義了__REG51_H__。第二次再遇到#include 的時候,因為已經定義了__REG51_H__,所以編譯器不會再處理#endif之前的內容。這樣就防止了重復編譯。
在stm32中會遇到這樣的條件編譯:
#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)
#edfif
這里我們先講講#ifdef 和 #if defined 的區別,后者可以組成復雜的預編譯條件,比如
#if defined (AAA) && defined (BBB)
xxxxxxxxx
#endif
這時候是否編譯取決于AAA和BBB是否都已經被宏定義,如果二者都被宏定義則編譯,只要二者中的一個沒有被宏定義,這時候就不編譯了。實際上就是判斷if后面那句話為真還是假,在決定是否編譯。
#if defined (AAA) || VERSION > 12
xxxxxxxxx
#endif
而#ifdef 就不能用上面的用法,也就是說,當你要判斷單個宏是否定義時
#ifdef 和 #if defined 效果是一樣的,但是當你要判斷復雜的條件時,只能用 #if defined
而#if !defined 就是用于判斷復雜的條件不成立時,則編譯。
作者:
duoshabao
時間:
2014-8-20 11:28
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文二区
|
国产精品美女久久久久aⅴ国产馆
|
久久午夜视频
|
高清视频一区二区三区
|
成人在线中文字幕
|
国产精品国产三级国产aⅴ中文
|
精品一区国产
|
韩国av网站在线观看
|
91精品国产91久久久久久丝袜
|
久久久久久久久国产成人免费
|
精品日韩一区
|
一级在线观看
|
在线国产一区二区
|
久色一区
|
在线免费观看成年人视频
|
国产成人精品高清久久
|
日本不卡免费新一二三区
|
黄片毛片在线观看
|
久久51
|
91视频导航
|
日韩一区二区三区在线
|
影视先锋av资源噜噜
|
久久国
|
国产精品污污视频
|
欧美一级特黄aaa大片在线观看
|
日本午夜免费福利视频
|
国产成人免费视频网站视频社区
|
成人三区
|
国产美女视频黄a视频免费 国产精品福利视频
|
欧美精品成人影院
|
拍拍无遮挡人做人爱视频免费观看
|
亚洲欧美在线观看
|
国产一级电影网
|
一区二区三区国产
|
国产女人第一次做爰毛片
|
91婷婷韩国欧美一区二区
|
在线观看视频91
|
一区二区三区免费看
|
国产精品视频免费观看
|
久久大
|
亚洲成人一区
|