女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

#define的高級用法簡介

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 作者:黃工的嵌入式技術 ? 2020-02-05 11:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來源:嵌入式大雜燴

地址:https://blog.csdn.net/xiaoxu2050/article/details/82893476

一、宏的定義與撤銷

需要注意的是:

(1)宏定義應注意添加括號,這樣語義會比較清晰。

(2)使用#undef可以撤銷宏定義。

(3)引號中的宏定義不會被替換。

(4)宏定義的宏名必須是合法的標識符。

(5)宏定義中單、雙引號必須成對出現。

二、帶有參數的宏定義

需要注意的是:

(1)宏調用時參數的個數要與定義時相同。

三、跨行的宏定義,使用反斜杠 分隔

四、三個特殊符號:#,##,#@

五、常見的宏定義

1、防止頭文件被重復包含

2、得到指定地址上的一個字節值或字值

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

#defineOFFSETOF(type,field)((size_t)&((type*)0)->field)

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

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

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

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

6、將一個字母轉換為大寫

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

7、判斷字符是不是10進制的數字

#defineDECCHK(c)((c)>='0'&&(c)<=?'9')

8、判斷字符是不是16進制的數字

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

9、防止溢出的一個方法

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

10、返回數組元素的個數

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

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

    關注

    5149

    文章

    19655

    瀏覽量

    317316
  • C語言
    +關注

    關注

    180

    文章

    7632

    瀏覽量

    141593
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    UIAbility組件基本用法說明

    UIAbility組件基本用法 UIAbility組件的基本用法包括:指定UIAbility的啟動頁面以及獲取UIAbility的上下文UIAbilityContext。 指定UIAbility
    發表于 05-16 06:32

    harmony OS NEXT-Navagation基本用法

    # Navagation基本用法 > Navigation組件是路由導航的根視圖容器,一般作為Page頁面的根容器使用,其內部默認包含了標題欄,內容欄和公工具欄,其中內容區默認首頁顯示導航內容
    的頭像 發表于 04-27 17:39 ?307次閱讀

    WEBENCH電源高級分析

    電子發燒友網站提供《WEBENCH電源高級分析.pdf》資料免費下載
    發表于 01-21 14:53 ?0次下載
    WEBENCH電源<b class='flag-5'>高級</b>分析

    keil在Debug的高級用法

    第一節軟件說明Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。目前軟件對中文的支持不友好,不建議安裝網上的一些漢化包之類的。另外建立的工程文件路徑也盡量不要存在中文,否則可能會出現一些異常。第二節基本調試方法1,基本調試操作:首先點擊"Debug->
    的頭像 發表于 12-26 21:01 ?1930次閱讀
    keil在Debug的<b class='flag-5'>高級</b><b class='flag-5'>用法</b>

    DAC7562的CLR引腳怎么用法?可以懸空嗎?

    DAC7562的CLR引腳怎么用法?可以懸空嗎?能不能詳細解釋一下?謝謝
    發表于 12-17 08:16

    常用SQL函數及其用法

    的 SQL 函數及其用法: 一、聚合函數(Aggregate Functions) 聚合函數對一組值執行計算,并返回單個值。 COUNT() 用途 :返回匹配指定條件的行數。 示例 : SELECT
    的頭像 發表于 11-19 10:18 ?1415次閱讀

    PCB高級EMC設計

    PCB高級EMC設計 ?
    的頭像 發表于 11-16 11:28 ?2288次閱讀
    PCB<b class='flag-5'>高級</b>EMC設計

    閃電定位儀應用簡介

    閃電定位儀應用簡介
    發表于 11-13 16:34 ?0次下載

    Wilink8高級特性

    電子發燒友網站提供《Wilink8高級特性.pdf》資料免費下載
    發表于 11-08 15:58 ?0次下載
    Wilink8<b class='flag-5'>高級</b>特性

    Linux lsof命令的基本用法

    在 linux 系統中,一切皆文件。通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件、目錄,還可以查看進程監聽的端口等 socket 相關的信息。本文將介紹 lsof 命令的基本用法,本文中 demo 的演示環境為 ubuntu 18.04。
    的頭像 發表于 10-23 11:52 ?1284次閱讀
    Linux lsof命令的基本<b class='flag-5'>用法</b>

    SV中define宏定義的用法

    SV中使用預處理指令`define來定義宏,宏可以用來創建文本替換。根據場景不同,`define主要用來定義常量、簡化復雜的表達式或代碼段以及提高代碼的可移植性。其基本語法為:
    的頭像 發表于 10-21 14:22 ?1878次閱讀

    共模電感的用法

    呈現出大電感,具有抑制作用,而對于差模信號則呈現出很小的漏電感,幾乎不起作用。以下是對共模電感用法的詳細探討。
    的頭像 發表于 10-17 15:12 ?2110次閱讀

    安達發|APS高級排程高級物料需求計劃

    APS高級排程高級物料需求計劃是在制造業中非常重要的概念。它們分別涉及到生產計劃和物料管理,對于提高生產效率、降低成本和滿足客戶需求具有重要意義。下面我將詳細介紹這兩個概念及其在實際生產
    的頭像 發表于 09-25 17:49 ?626次閱讀
    安達發|APS<b class='flag-5'>高級</b>排程<b class='flag-5'>高級</b>物料需求計劃

    Sn74hc245具體的用法是什么?

    Sn74hc245是緩沖器,但是具體的用法不會
    發表于 09-10 07:32

    請問TLC352比較器的用法是否正確?

    以下比較器TLC352的用法是否正確?謝謝 TLC352含兩個比較器,第二路不用,我是否可以把它的輸入管腳IN2+, IN2-懸空? 它的輸出是否是Open Drain? 也就是出高電平時,必須
    發表于 08-14 08:10