欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

列舉一些成熟軟件中C語(yǔ)言常用的宏定義

STM32嵌入式開(kāi)發(fā) ? 來(lái)源:STM32嵌入式開(kāi)發(fā) ? 2023-08-27 11:25 ? 次閱讀

使用宏定義可以防止出錯(cuò),提高可移植性,可讀性,方便性等。

下面列舉了一些成熟軟件中常用的宏定義。

重新定義一些類(lèi)型,防止由于各種平臺(tái)和編譯器的不同,而產(chǎn)生的類(lèi)型字節(jié)數(shù)差異,方便移植:


typedefunsignedcharboolean;/*Booleanvaluetype.*/
typedefunsignedlongintuint32;/*Unsigned32bitvalue*/
typedefunsignedshortuint16;/*Unsigned16bitvalue*/
typedefunsignedcharuint8;/*Unsigned8bitvalue*/
typedefsignedlongintint32;/*Signed32bitvalue*/
typedefsignedshortint16;/*Signed16bitvalue*/
typedefsignedcharint8;/*Signed8bitvalue*/

求最大值和最小值:


#defineMAX(x,y)(((x)>(y))?(x):(y))
#defineMIN(x,y)(((x)

得到一個(gè)field在結(jié)構(gòu)體(struct)中的偏移量:

#defineFPOS(type,field)
/*lint-e545*/((dword)&((type*)0)->field)/*lint+e545*/

得到一個(gè)結(jié)構(gòu)體中field所占用的字節(jié)數(shù):


#defineFSIZ(type,field)sizeof(((type*)0)->field)

按照LSB格式把兩個(gè)字節(jié)轉(zhuǎn)化為一個(gè)Word:

1#defineFLIPW(ray)((((word)(ray)[0])*256)+(ray)[1])

按照LSB格式把一個(gè)Word轉(zhuǎn)化為兩個(gè)字節(jié):


#defineFLOPW(ray,val)
(ray)[0]=((val)/256);
(ray)[1]=((val)&0xFF)

得到一個(gè)變量的地址(word寬度):


#defineB_PTR(var)((byte*)(void*)&(var))
#defineW_PTR(var)((word*)(void*)&(var))

得到一個(gè)字的高位和低位字節(jié):


#defineWORD_LO(xxx)((byte)((word)(xxx)&255))
#defineWORD_HI(xxx)((byte)((word)(xxx)>>8))

將一個(gè)字母轉(zhuǎn)換為大寫(xiě):

#defineUPCASE(c)(((c)>='a'&&(c)<=?'z')???((c)?-?0x20)?:?(c)?)

判斷字符是不是10進(jìn)制的數(shù)字:


#define DECCHK( c ) ((c) >= '0' && (c) <= '9')

判斷字符是不是16進(jìn)制的數(shù)字:


#defineHEXCHK(c)(((c)>='0'&&(c)<=?'9')?||
((c)?>='A'&&(c)<=?'F')?||
((c)?>='a'&&(c)<=?'f')?)

防止一個(gè)頭文件被重復(fù)包含:


#ifndefCOMDEF_H
#defineCOMDEF_H
//頭文件內(nèi)容
#endif

防止溢出的一個(gè)方法:

#defineINC_SAT(val)(val=((val)+1>(val))?(val)+1:(val))

返回?cái)?shù)組元素的個(gè)數(shù):

791b04e0-4475-11ee-a2ef-92fbcf53809c.png

#defineARR_SIZE(a)(sizeof((a))/sizeof((a[0])))






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7530

    瀏覽量

    164417
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7615

    瀏覽量

    137863
  • LSB算法
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    5837

原文標(biāo)題:寫(xiě)好C語(yǔ)言,漂亮的宏定義很重要!

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語(yǔ)言定義使用技巧

    寫(xiě)好C語(yǔ)言,漂亮的定義很重要,使用定義可以防止出錯(cuò),提高可移植性,可讀性,方便性等等。下面
    發(fā)表于 07-29 09:35 ?1139次閱讀

    C語(yǔ)言定義小技巧

    今天分享個(gè)C語(yǔ)言定義小技巧,從語(yǔ)法上來(lái)看比較簡(jiǎn)單,不過(guò)旦真正領(lǐng)悟到其精妙之處不僅可以簡(jiǎn)化代
    發(fā)表于 09-07 09:36 ?661次閱讀

    C語(yǔ)言中常用定義

    寫(xiě)好C語(yǔ)言,漂亮的定義很重要,使用定義可以防止出錯(cuò),提高可移植性,可讀性,方便性等等。下面
    發(fā)表于 10-18 10:05 ?1759次閱讀

    C語(yǔ)言定義的應(yīng)用

    C語(yǔ)言中,定義種預(yù)處理指令,用于在代碼定義
    發(fā)表于 08-17 15:33 ?917次閱讀

    C語(yǔ)言常用定義技巧(轉(zhuǎn))

    C語(yǔ)言常用定義技巧
    發(fā)表于 07-26 12:47

    c語(yǔ)言中常用定義有哪些?

    c語(yǔ)言中常用定義有哪些?
    發(fā)表于 04-28 06:01

    Linux內(nèi)核GNU C擴(kuò)展的一些常用C語(yǔ)言語(yǔ)法分析

    13.1 總結(jié)前面12節(jié)的課程,主要針對(duì) Linux 內(nèi)核 GNU C 擴(kuò)展的一些常用 C 語(yǔ)言
    發(fā)表于 12-14 06:29

    C語(yǔ)言定義使用技巧

    寫(xiě)好C語(yǔ)言,漂亮的定義很重要,使用定義可以防止出錯(cuò),提高可移植性,可讀性,方便性 等等。下面
    發(fā)表于 11-13 12:04 ?36次下載

    ARM Linux中一些重要的及地址定義

    ARM Linux中一些重要的及地址定義
    的頭像 發(fā)表于 06-22 17:02 ?2786次閱讀

    一些成熟軟件常用定義

    寫(xiě)好C語(yǔ)言,漂亮的定義很重要,使用定義可以防止出錯(cuò),提高可移植性,可讀性,方便 性等等。 下
    的頭像 發(fā)表于 01-18 11:21 ?2394次閱讀

    C語(yǔ)言中的定義

    #define命令是C語(yǔ)言中的個(gè)定義命令,它用來(lái)將個(gè)標(biāo)識(shí)符
    的頭像 發(fā)表于 09-28 16:05 ?3539次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中的<b class='flag-5'>宏</b><b class='flag-5'>定義</b>

    C語(yǔ)言定義的使用原理

    使用STM32開(kāi)發(fā)的朋友不知道是否有發(fā)現(xiàn)過(guò)這樣的一些定義?
    的頭像 發(fā)表于 02-01 14:36 ?1666次閱讀

    c語(yǔ)言定義可以嵌套嗎?

    c語(yǔ)言定義可以嵌套嗎? C語(yǔ)言
    的頭像 發(fā)表于 09-04 17:38 ?3292次閱讀

    c語(yǔ)言帶參數(shù)的定義

    c語(yǔ)言帶參數(shù)的定義? C語(yǔ)言
    的頭像 發(fā)表于 09-04 17:45 ?2508次閱讀

    列舉一些C語(yǔ)言中常用定義

    寫(xiě)好C語(yǔ)言,使用定義可以防止出錯(cuò),提高可移植性、可讀性等。下文列舉一些
    發(fā)表于 10-07 10:54 ?679次閱讀
    <b class='flag-5'>列舉</b><b class='flag-5'>一些</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言中常用</b>的<b class='flag-5'>宏</b><b class='flag-5'>定義</b>