舉個例子吧:

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),崇義企業(yè)網(wǎng)站建設(shè),崇義品牌網(wǎng)站建設(shè),網(wǎng)站定制,崇義網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,崇義網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
#include stdio.h
//宏定義:
#define MAX(a,b) (ab) ? a : b
int main()
{
int x,y,max;
printf("input two numbers: ");
scanf("%d%d",x,y);
max = MAX(x,y);//調(diào)用宏
printf("max=%d\n",max);
}
宏定義是就完全替換,加不加分號看你自己喜歡,比如一個宏定義
#define WRCMD a = 1
這里加了分號,那在用時就不用加直接寫WRCMD然后換行就行,
如果這時沒加,那就在用時是這個樣子的
WRCMD;
宏定義的基礎(chǔ)知識。引用宏定義時,直接代入進行代換。
既然已經(jīng)宏定義SUB(a) (a)-(a),而程序中出現(xiàn)的對應(yīng)a的是a+b,那么就將a換為a+b代入表達式:
d=SUB(a+b)*c=(a+b)-(a+b)*c=(2+3)-(2+3)*5
直接用(a+b)-(a+b)代換SUB(a+b)。這一點和數(shù)學(xué)是不同的,不要強行往數(shù)學(xué)上靠。
#include 是用來引出庫函數(shù)用來調(diào)用一些系統(tǒng)已經(jīng)定義好的函數(shù),方便用戶使用,#define是宏定義,格式為#define n m 表示用n來代替m使用,但和賦值的概念是不同的,當定義好后以后就不能改變它的值,除非用#undef 來消除這個宏定義.而且#define和#include并非是c語言的語句.
直接調(diào)用即可。如下示例:
#includestdio.h#define?sum(b,c){int?d=0;d=b+c;printf("兩者的和:%d\n",d);}int?main(){????int?x=0,y=0;????scanf("%d%d",x,y);????sum?(x,y);????return?0;}
拓展資料
使用宏函數(shù)或者宏函數(shù)時,注意如下幾點:
1.宏函數(shù)的參數(shù)沒有類型,預(yù)處理器只負責做形式上的替換,而不做參數(shù)類型檢查,所以傳參時要格外小心。
2.宏函數(shù)定義要注意格式,尤其是括號。
如果上面的宏函數(shù)寫成 #define MAX(a, b) (ab?a:b),省去內(nèi)層括號,則宏展開就成了k = (i0x0fj0x0f?i0x0f:j0x0f),運算的優(yōu)先級就錯了。同樣道理,這個宏定義的外層括號也是不能省的。若函數(shù)中是宏替換為 ++MAX(a,b),則宏展開就成了 ++(a)(b)?(a):(b),運算優(yōu)先級也是錯了。
3.宏函數(shù)往往會導(dǎo)致較低的代碼執(zhí)行效率。
若是普通函數(shù),則通過遞歸,可取的最大值,時間復(fù)雜度為O(n)。但若是宏函數(shù),則宏展開為( a[n]max(n-1)?a[n]:max(n-1) ),其中max(n-1)被調(diào)用了兩遍,這樣依此遞歸下去,時間復(fù)雜度會很高。
宏定義屬于預(yù)編譯階段的處理過程。預(yù)編譯是整個編譯過程的第一步。編譯器將檢查代碼中的所有預(yù)編譯語句,遇到#include則將被包含的文件整個復(fù)制粘貼到#include位置替換#include語句,遇到#define語句則定義該宏并將文本中所有出現(xiàn)該宏的代碼予以替換,遇到#ifdef、#ifndef、#endif語句則進行判斷和執(zhí)行相應(yīng)操作。這個時候程序的源代碼還是文本形式,編譯器還沒有開始語法分析,連函數(shù)的概念都不存在,又怎么判斷函數(shù)的代碼誰先執(zhí)行誰后執(zhí)行呢?
本文名稱:c語言取消宏定義函數(shù),c++宏定義函數(shù)
文章起源:http://chinadenli.net/article16/hsiidg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站內(nèi)鏈、標簽優(yōu)化、網(wǎng)站改版、網(wǎng)頁設(shè)計公司、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)