最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單講解C語言中宏的定義與使用

 更新時間:2016年05月07日 15:51:14   作者:靈犀  
這篇文章主要介紹了C語言中宏的定義與使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

宏定義是預(yù)編譯功能的一種, 預(yù)編譯又稱為預(yù)處理, 是為編譯做的預(yù)備工作的階段。處理#開頭的指令, 比如拷貝 #include 包含的文件代碼,#define宏定義的替換,條件編譯等。
使用宏定義的好處:使用宏定義的好處:可提高程序的通用性和易讀性,減少不一致性,減少輸入錯誤和便于修改。例如 π 這個常量,我們有時候會在程序的多個地方使用,如果每次使用都重新定義,一來比較麻煩,二來容易出錯,所以我們可以把 π 做成宏定義來使用。
 
語法說明:
(1)宏名一般用大寫
(2)使用宏可提高程序的通用性和易讀性,減少不一致性,減少輸入錯誤和便于修改。例如:數(shù)組大小常用宏定義
(3)預(yù)處理是在編譯之前的處理,而編譯工作的任務(wù)之一就是語法檢查,預(yù)處理不做語法檢查。
(4)宏定義末尾不加分號;
(5)宏定義寫在函數(shù)的花括號外邊,作用域為其后的程序,通常在文件的最開頭。
(6)可以用#undef命令終止宏定義的作用域
(7)宏定義可以嵌套
(8)字符串" "中永遠(yuǎn)不包含宏
(9)宏定義不分配內(nèi)存,變量定義分配內(nèi)存。

定義:

#define 宏名 內(nèi)容

#define kArrLen 10 // OC駝峰命名法:首字符為k,其他單詞首字符大寫

#define ARR_LEN 10 // C語言中的宏命名規(guī)范:所有字母大寫,單詞用下劃線分隔

例如:

#define PI 3.1415926

我們就可以使用 PI 來代替 3.1415926 即可:

float r = 0.5;
float area = PI * r * r;
printf("area = %f\n", area);

在程序預(yù)編譯階段會把 PI 替換成 3.1415926:

float area = 3.1415926 * r * r;

宏定義內(nèi)容很簡單,也很好理解,但是有幾個如下的注意事項:

1、因為宏定義只是簡單的替換,如果宏定義的內(nèi)容有運算的時候,要把每個變量加上括號,以免影響運算的優(yōu)先級

比如:#define MUL(A, B) (A * B)

使用方法:

MUL(3 + 5, 5 + 6) //會替換成 3 + 5 * 5 + 6 = 34

我們希望(3 + 5) * (5 + 6),所以定義宏定義的時候應(yīng)該:

#define MUL(A, B) ((A) * (B))

2、注意宏定義后面沒有分號(;),它不是一條語句

3、宏定義是在程序編譯前期進(jìn)行替換,此時程序還沒有編譯

相關(guān)文章

  • c++ 遞歸鎖的使用示例代碼

    c++ 遞歸鎖的使用示例代碼

    這篇文章主要介紹了c++ 遞歸鎖的使用示例代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • C++ Qt開發(fā)之ComboBox下拉組合框組件用法詳解

    C++ Qt開發(fā)之ComboBox下拉組合框組件用法詳解

    Qt 是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應(yīng)用程序,在Qt中,ComboBox(組合框)是一種常用的用戶界面控件,它提供了一個下拉列表,允許用戶從預(yù)定義的選項中選擇一個,本文給大家介紹QComboBox類的一些常用方法,需要的朋友可以參考下
    2023-12-12
  • c++?創(chuàng)建型設(shè)計模式工廠方法Factory?Method示例詳解

    c++?創(chuàng)建型設(shè)計模式工廠方法Factory?Method示例詳解

    這篇文章主要為大家介紹了c++?創(chuàng)建型設(shè)計模式工廠方法Factory?Method示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 一問學(xué)會QT時間類

    一問學(xué)會QT時間類

    QT獲取時間的類有3個,分別是QDate、QTime、QDateTime,他們屬于QT的network模塊。本文詳細(xì)的介紹了這3個模塊的使用,感興趣的可以了解一下
    2023-04-04
  • C++使用MIDI庫實現(xiàn)演奏晴天

    C++使用MIDI庫實現(xiàn)演奏晴天

    這篇文章主要為大家詳細(xì)介紹了C++如何使用MIDI庫實現(xiàn)演奏晴天歌曲,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以了解下
    2025-02-02
  • C語言源碼實現(xiàn)停車場管理系統(tǒng)

    C語言源碼實現(xiàn)停車場管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言源碼實現(xiàn)停車場管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 數(shù)據(jù)結(jié)構(gòu) 數(shù)組順序存儲詳細(xì)介紹

    數(shù)據(jù)結(jié)構(gòu) 數(shù)組順序存儲詳細(xì)介紹

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu) 數(shù)組順序存儲詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • C++使用HTTP庫和框架輕松發(fā)送HTTP請求

    C++使用HTTP庫和框架輕松發(fā)送HTTP請求

    使用C++編程發(fā)送HTTP請求通常需要使用第三方的HTTP庫或框架,本文主要介紹了C++使用HTTP庫和框架輕松發(fā)送HTTP請求,感興趣的可以了解一下
    2023-12-12
  • C++實現(xiàn)哈夫曼編碼

    C++實現(xiàn)哈夫曼編碼

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)哈夫曼編碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c++遍歷lua table示例

    c++遍歷lua table示例

    這篇文章主要介紹了c++遍歷lua table示例,需要的朋友可以參考下
    2014-04-04

最新評論

祥云县| 晋城| 云林县| 广元市| 阿鲁科尔沁旗| 泉州市| 裕民县| 广平县| 无锡市| 惠安县| 金华市| 乌兰察布市| 郸城县| 始兴县| 桐柏县| 乐安县| 慈溪市| 临汾市| 西乌珠穆沁旗| 常熟市| 姜堰市| 伊春市| 扎鲁特旗| 饶河县| 德钦县| 保靖县| 稷山县| 太保市| 醴陵市| 南靖县| 嘉峪关市| 大足县| 托克托县| 清涧县| 寿宁县| 扶风县| 东台市| 巴中市| 东海县| 遂平县| 苍梧县|