宏屬于預(yù)處理,在編譯之前完成替換,因此你的描述應(yīng)該是做不到的。
五臺網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,五臺網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為五臺上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的五臺做網(wǎng)站的公司定做!
其實(shí)你如果要定義1000個宏,不如直接定義一次數(shù)組,然后在初值表賦值了,然后把該數(shù)組的內(nèi)容再賦值給B。
int A[1000]={0x5,0xA,)x20,.......};
因?yàn)楹晔且粋€簡單替換,所以c語言中用宏定義一個字符常量(一個字母)可以賦值給字符變量。實(shí)質(zhì)是在編譯之前會把宏替換掉,然后再編譯。
例如:
#define A 5
void main()
{
int num=A;
}
在編譯之前A已經(jīng)被替換成5了,所以就可以賦值給num。
一般用 函數(shù)的 參數(shù)傳遞。如果要通過函數(shù)返回值傳遞,可以用指針,另外保存數(shù)據(jù)的變量退出函數(shù)時不得消失。例如: #include int * fun(int n) { int i; static int a[100]; // 這里用static for (i=0;i
不能,宏只能用來做簡單的替換,上面的MAX(x,y)中Max才是宏,x、y只是他的參數(shù),max就是(xy?(x):(y))這條語句,x=5、y=6所以輸出y;還有那個qqq的,因?yàn)橹耙呀?jīng)定義了一個參數(shù)a,所以編譯之后是a=2不是qqq=2,如果你將int a去掉試試
標(biāo)題名稱:c語言宏函數(shù)調(diào)用賦值 c語言中宏函數(shù)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article8/dogcdip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、商城網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站策劃、定制開發(fā)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)