[導(dǎo)讀]關(guān)注「Linux大陸」,選擇「星標(biāo)公眾號(hào)」一起進(jìn)步!嵌入式編程中,宏定義很重要,使用宏定義可以防止出錯(cuò),提高可移植性,可讀性,方便性等等。下面列舉一些成熟軟件中常用的宏定義。1.防止一個(gè)頭文件被重復(fù)包含1#ifndef?COMDEF_H2#define?COMDEF_H3//頭文...
關(guān)注「Linux大陸」,選擇「星標(biāo)公眾號(hào)」一起進(jìn)步!嵌入式編程中,宏定義很重要,使用宏定義可以防止出錯(cuò),提高可移植性,可讀性,方便性等等。下面列舉一些成熟軟件中常用的宏定義。1. 防止一個(gè)頭文件被重復(fù)包含
1#ifndef?COMDEF_H
2#define?COMDEF_H
3//頭文件內(nèi)容
4#endif
2. 重新定義一些類型,防止由于各種平臺(tái)和編譯器的不同,而產(chǎn)生的類型字節(jié)數(shù)差異,方便移植。
1typedef?unsigned?char?boolean;?/*?Boolean?value?type.?*/
2typedef?unsigned?long?int?uint32;?/*?Unsigned?32?bit?value?*/
3typedef?unsigned?short?uint16;?/*?Unsigned?16?bit?value?*/
4typedef?unsigned?char?uint8;?/*?Unsigned?8?bit?value?*/
5typedef?signed?long?int?int32;?/*?Signed?32?bit?value?*/
6typedef?signed?short?int16;?/*?Signed?16?bit?value?*/
7typedef?signed?char?int8;?/*?Signed?8?bit?value?*/
下面的不建議使用 1typedef?unsigned?char?byte;?/*?Unsigned?8?bit?value?type.?*/
2typedef?unsigned?short?word;?/*?Unsinged?16?bit?value?type.?*/
3typedef?unsigned?long?dword;?/*?Unsigned?32?bit?value?type.?*/
4typedef?unsigned?char?uint1;?/*?Unsigned?8?bit?value?type.?*/
5typedef?unsigned?short?uint2;?/*?Unsigned?16?bit?value?type.?*/
6typedef?unsigned?long?uint4;?/*?Unsigned?32?bit?value?type.?*/
7typedef?signed?char?int1;?/*?Signed?8?bit?value?type.?*/
8typedef?signed?short?int2;?/*?Signed?16?bit?value?type.?*/
9typedef?long?int?int4;?/*?Signed?32?bit?value?type.?*/
10typedef?signed?long?sint31;?/*?Signed?32?bit?value?*/
11typedef?signed?short?sint15;?/*?Signed?16?bit?value?*/
12typedef?signed?char?sint7;?/*?Signed?8?bit?value?*/
3. 得到指定地址上的一個(gè)字節(jié)或字
1#define?MEM_B(?x?)?(?*(?(byte?*)?(x)?)?)
2#define?MEM_W(?x?)?(?*(?(word?*)?(x)?)?)
4. 求最大值和最小值
1#define?MAX(?x,?y?)?(?((x)?>?(y))???(x)?:?(y)?)
2#define?MIN(?x,?y?)?(?((x)?(y))???(x)?:?(y)?)
5. 得到一個(gè)field在結(jié)構(gòu)體(struct)中的偏移量
1#define?FPOS(?type,?field?)?\
2/*lint?-e545?*/?(?(dword)?
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。