真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言中帶參宏函數(shù)實例 c語言帶參數(shù)的函數(shù)

C語言帶參宏定義

,MA(num1+num2)

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、通川網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為通川等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

展開

num1+num2*(num1+num2+1)

2 + 3*(2+3+1)不正是20么 = =

#define MA(x) (x)*((x)+1)

要這樣寫哦

C語言中帶參數(shù)的宏定義問題

上面是 宏 定義。

第一行 DEFINE...SUITE 是宏函數(shù)名,小括號里是 三個 形式參數(shù)。 定義為 下面第二行開始 含 續(xù)行號的 所有的行。 程序中出現(xiàn) DEFINE...SUITE 宏函數(shù)時,均用 它的 定義句 做字符替代。

定義句替代宏函數(shù)時,凡是有 三個形式參數(shù) 的地方,用 實際參數(shù) 做字符替代。

## 是 連接符,用于一個Token 與另 一個Token 的 連接,(Token 也可以是另外的宏,也可以不是)。

例子: 若形參_sym的實際參數(shù) 是 XYZ, 那么 _test_str_##_sym[] 變成 _test_str_XYZ[]。 這個 _test_str_XYZ 是 static const char型 數(shù)組的名字。

后面還有個 .name = _test_str_XYZ, 也是token的連接。

C語言中帶參數(shù)的宏定義與函數(shù)的區(qū)別(試舉例)

宏只是字符的替換,在預(yù)處理階段就給替換到代碼中去了比如下面的代碼

#include

#define

MAX(x,

y)

((x)(y)?(x):y())

int

main()

{

int

a

=

2,

b

=

4;

int

m;

m

=

MAX(2,

4);

printf("%d\n",

m);

return

0;

}

如果你用的是gcc編譯器,執(zhí)行

gcc

-E

main.c

-o

main.i,打開main.i文件就可以看到他是如何替換進去的,直接拖到最后,前面的都是stdio.h中的內(nèi)容。

int

main()

{

int

a

=

2,

b

=

4;

int

m;

m

=

((2)(4)?(2):4());

printf("%d\n",

m);

return

0;

}

函數(shù)就不同了,函數(shù)還需要分配棧空間,在執(zhí)行函數(shù)時都要進行入棧和出棧操作,有的還需要分配堆空間。

宏所實現(xiàn)的功能有限,而且長代碼不易讀,但是對于邏輯簡單、代碼不長、經(jīng)常使用的功能由宏來實現(xiàn)是個不錯的選擇


標題名稱:c語言中帶參宏函數(shù)實例 c語言帶參數(shù)的函數(shù)
文章鏈接:http://weahome.cn/article/dojcojs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部