在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 2023-08-27 11:25 ? 次閱讀

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

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

重新定義一些類型,防止由于各種平臺和編譯器的不同,而產生的類型字節數差異,方便移植:


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)

得到一個field在結構體(struct)中的偏移量:

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

得到一個結構體中field所占用的字節數:


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

按照LSB格式把兩個字節轉化為一個Word:

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

按照LSB格式把一個Word轉化為兩個字節:


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

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


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

得到一個字的高位和低位字節:


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

將一個字母轉換為大寫:

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

判斷字符是不是10進制的數字:


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

判斷字符是不是16進制的數字:


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

防止一個頭文件被重復包含:


#ifndefCOMDEF_H
#defineCOMDEF_H
//頭文件內容
#endif

防止溢出的一個方法:

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

返回數組元素的個數:

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

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






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7641

    瀏覽量

    166645
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140726
  • LSB算法
    +關注

    關注

    0

    文章

    7

    瀏覽量

    5885

原文標題:寫好C語言,漂亮的宏定義很重要!

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    C語言定義使用技巧

    寫好C語言,漂亮的定義很重要,使用定義可以防止出錯,提高可移植性,可讀性,方便性等等。下面
    發表于 07-29 09:35 ?1220次閱讀

    C語言中常用定義

    寫好C語言,漂亮的定義很重要,使用定義可以防止出錯,提高可移植性,可讀性,方便性等等。下面
    發表于 10-18 10:05 ?1972次閱讀

    C語言定義的應用

    C語言中,定義種預處理指令,用于在代碼定義
    發表于 08-17 15:33 ?1149次閱讀

    C語言定義的使用技巧

    #define命令是C語言中的定義命令,它用來將個標識符
    發表于 09-05 10:12 ?1597次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中<b class='flag-5'>宏</b><b class='flag-5'>定義</b>的使用技巧

    C語言常用定義技巧(轉)

    C語言常用定義技巧
    發表于 07-26 12:47

    c語言中常用定義有哪些?

    c語言中常用定義有哪些?
    發表于 04-28 06:01

    Linux內核GNU C擴展的一些常用C語言語法分析

    13.1 總結前面12節的課程,主要針對 Linux 內核 GNU C 擴展的一些常用 C 語言
    發表于 12-14 06:29

    C語言定義使用技巧

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

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

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

    一些成熟軟件常用定義

    寫好C語言,漂亮的定義很重要,使用定義可以防止出錯,提高可移植性,可讀性,方便 性等等。 下
    的頭像 發表于 01-18 11:21 ?2524次閱讀

    C語言中的定義

    #define命令是C語言中的定義命令,它用來將個標識符
    的頭像 發表于 09-28 16:05 ?3883次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>宏</b><b class='flag-5'>定義</b>

    C語言定義的使用原理

    使用STM32開發的朋友不知道是否有發現過這樣的一些定義?
    的頭像 發表于 02-01 14:36 ?1884次閱讀

    c語言定義可以嵌套嗎?

    c語言定義可以嵌套嗎? C語言
    的頭像 發表于 09-04 17:38 ?3633次閱讀

    c語言帶參數的定義

    c語言帶參數的定義? C語言
    的頭像 發表于 09-04 17:45 ?2860次閱讀

    列舉一些C語言中常用定義

    寫好C語言,使用定義可以防止出錯,提高可移植性、可讀性等。下文列舉一些
    發表于 10-07 10:54 ?971次閱讀
    <b class='flag-5'>列舉</b><b class='flag-5'>一些</b><b class='flag-5'>C</b><b class='flag-5'>語言中常用</b>的<b class='flag-5'>宏</b><b class='flag-5'>定義</b>
    主站蜘蛛池模板: 加勒比色 | 国产黄色录像视频 | 亚洲迅雷| 色视频在线播放 | 青娱乐啪啪 | 偷窥自拍亚洲色图 | 国产未成女年一区二区 | 一区二区在线免费观看 | 91一区二区三区四区五区 | 国产精品7m凸凹视频分类大全 | 一区二区不卡免费视频 | 亚欧精品一区二区三区 | 免费网址视频在线看 | 手机看片福利盒子久久 | 高清一本之道加勒比在线 | 国产亚洲精品aaa大片 | 黄色18网站 | 成人a一级毛片免费看 | 高清国产一区二区三区 | 午夜在线播放视频在线观看视频 | 四虎最新紧急入口4hu | 草草影院www色极品欧美 | 综合亚洲色图 | 天天操天天射天天色 | 成视频年人黄网站免费视频 | 22sihu国产精品视频影视资讯 | 黄色网络在线观看 | 色老头成人免费综合视频 | 美女视频黄a全部免费看小说 | 俺去鲁婷婷六月色综合 | 亚洲福利一区二区三区 | 视频在线h | 午夜一级毛片不卡 | 狠狠婷婷 | 国产欧美日韩在线人成aaaa | 啪视频免费 | 在线视频观看免费 | 日韩a毛片免费全部播放完整 | 国产综合图区 | sihu影院永久在线影院 | 一区中文字幕 |