雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊:

宏定義是預(yù)編譯功能的一種, 預(yù)編譯又稱為預(yù)處理, 是為編譯做的預(yù)備工作的階段。處理#開頭的指令, 比如拷貝 #include 包含的文件代碼,#define宏定義的替換,條件編譯等。
使用宏定義的好處:使用宏定義的好處:可提高程序的通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤和便于修改。例如 π 這個(gè)常量,我們有時(shí)候會(huì)在程序的多個(gè)地方使用,如果每次使用都重新定義,一來比較麻煩,二來容易出錯(cuò),所以我們可以把 π 做成宏定義來使用。
 
語法說明:
(1)宏名一般用大寫
(2)使用宏可提高程序的通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤和便于修改。例如:數(shù)組大小常用宏定義
(3)預(yù)處理是在編譯之前的處理,而編譯工作的任務(wù)之一就是語法檢查,預(yù)處理不做語法檢查。
(4)宏定義末尾不加分號(hào);
(5)宏定義寫在函數(shù)的花括號(hào)外邊,作用域?yàn)槠浜蟮某绦?,通常在文件的最開頭。
(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ù)編譯階段會(huì)把 PI 替換成 3.1415926:

float area = 3.1415926 * r * r;

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

1、因?yàn)楹甓x只是簡單的替換,如果宏定義的內(nèi)容有運(yùn)算的時(shí)候,要把每個(gè)變量加上括號(hào),以免影響運(yùn)算的優(yōu)先級(jí)

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

使用方法:

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

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

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

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

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

上一篇:一波C語言字符數(shù)組實(shí)用技巧集錦

欄    目:C語言

下一篇:C++計(jì)算每個(gè)字符出現(xiàn)的次數(shù)

本文標(biāo)題:簡單講解C語言中宏的定義與使用

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2345.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有