<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦>知識(shí)大全>知識(shí)百科>百科知識(shí)>

        什么是宏定義宏定義的參數(shù)(2)

        時(shí)間: 謝君787 分享

          宏定義的冷門(mén)重點(diǎn)

          #define用法

          1、 用無(wú)參宏定義一個(gè)簡(jiǎn)單的常量

          #define LEN 12

          這個(gè)是最常見(jiàn)的用法,但也會(huì)出錯(cuò)。

          比如下面幾個(gè)知識(shí)點(diǎn)你會(huì)嗎?可以看下:

          (1)#defineNAME "zhangyuncong"

          程序中有"NAME"則,它會(huì)不會(huì)被替換呢?

          (2)#define 0x abcd

          可以嗎?也就是說(shuō),可不可以用不是標(biāo)識(shí)符的字母替換成別的東西?

          (3)#define NAME "zhang

          這個(gè)可以嗎?

          (4)#define NAME "zhangyuncong"

          程序中有上面的宏定義,并且,程序里有句:

          NAMELIST這樣,會(huì)不會(huì)被替換成"zhangyuncong"LIST

          四個(gè)題答案都是十分明確的。

          第一個(gè),""內(nèi)的東西不會(huì)被宏替換。這一點(diǎn)應(yīng)該大家都知道。

          第二個(gè),宏定義前面的那個(gè)必須是合法的用戶標(biāo)識(shí)符

          第三個(gè),宏定義也不是說(shuō)后面東西隨便寫(xiě),不能把字符串的兩個(gè)""拆開(kāi)。

          第四個(gè):只替換標(biāo)識(shí)符,不替換別的東西。NAMELIST整體是個(gè)標(biāo)識(shí)符,而沒(méi)有NAME標(biāo)識(shí)符,所以不替換。

          也就是說(shuō),這種情況下記住:#define第一位置第二位置

          (1) 不替換程序中字符串里的東西。

          (2) 第一位置只能是合法的標(biāo)識(shí)符(可以是關(guān)鍵字)

          (3) 第二位置如果有字符串,必須把""配對(duì)

          (4) 只替換與第一位置完全相同的標(biāo)識(shí)符

          還有就是老生常談的話:記住這是簡(jiǎn)單的替換而已,不要在中間計(jì)算結(jié)果,一定要替換出表達(dá)式之后再算。

          2、 帶參宏一般用法

          比如#define MAX(a,b) ((a)>(b)?(a):(b))

          則遇到MAX(1+2,value)則會(huì)把它替換成:

          ((1+2)>(value)?(1+2):(value))

          注意事項(xiàng)和無(wú)參宏差不多。

          但還是應(yīng)注意

          #define FUN(a) "a"

          則,輸入FUN(345)會(huì)被替換成什么?

          其實(shí),如果這么寫(xiě),無(wú)論宏的實(shí)參是什么,都不會(huì)影響其被替換成"a"的命運(yùn)。

          也就是說(shuō),""內(nèi)的字符不被當(dāng)成形參,即使它和一模一樣。

          那么,你會(huì)問(wèn)了,我要是想讓這里輸入FUN(345)它就替換成"345"該怎么實(shí)現(xiàn)呢?

          請(qǐng)看下面關(guān)于#的用法

          3、 有參宏定義中#的用法

          #define STR(str) #str

          #用于把宏定義中的參數(shù)兩端加上字符串的""

          比如,這里STR(my#name)會(huì)被替換成"my#name"

          一般由任意字符都可以做形參,但以下情況會(huì)出錯(cuò):

          STR())這樣,編譯器不會(huì)把“)”當(dāng)成STR()的參數(shù)。

          STR(,)同上,編譯器不會(huì)把“,”當(dāng)成STR的參數(shù)。

          STR(A,B)如果實(shí)參過(guò)多,則編譯器會(huì)把多余的參數(shù)舍去。(VC++2008為例)

          STR((A,B))會(huì)被解讀為實(shí)參為:(A,B),而不是被解讀為兩個(gè)實(shí)參,第一個(gè)是(A第二個(gè)是B)。

          4、 有參宏定義中##的用法

          #define WIDE(str) L##str

          則會(huì)將形參str的前面加上L

          比如:WIDE("abc")就會(huì)被替換成L"abc"

          如果有#defineFUN(a,b) vo##a##b()

          那么FUN(id ma,in)會(huì)被替換成void main()
        看過(guò)“宏定義的參數(shù)”的人還看了:

        1.c中define的用法

        2.c語(yǔ)言defined的用法

        3.c語(yǔ)言宏的用法

        4.c語(yǔ)言中define的用法

        5.怎么清除Word宏病毒

        什么是宏定義宏定義的參數(shù)(2)

        宏定義的冷門(mén)重點(diǎn) #define用法 1、 用無(wú)參宏定義一個(gè)簡(jiǎn)單的常量 #define LEN 12 這個(gè)是最常見(jiàn)的用法,但也會(huì)出錯(cuò)。 比如下面幾個(gè)知識(shí)點(diǎn)你會(huì)嗎?可以看下:
        推薦度:
        點(diǎn)擊下載文檔文檔為doc格式
        1617482 主站蜘蛛池模板: 亚洲VA中文字幕无码久久| 免费人成网站免费看视频| 国产一区二区三区黄网| 国产精品一区在线蜜臀| 欧美日韩精品一区二区视频 | 亚洲伊人情人综合网站| 日韩一区在线中文字幕| 国产精品高潮呻吟av久久无吗| 国产精品女人毛片在线看| 熟女人妻视频| 国产精品一区二区蜜臀av| 国产精品第二页在线播放| 亚洲精品二区在线播放| 国产大片黄在线观看| 色欲香天天天综合网站无码| 很黄很色很污18禁免费| 欧美亚洲日本国产综合在线美利坚| 国产精品天干天干综合网| 99精品国产精品一区二区| 中文字幕国产精品专区| 香港日本三级亚洲三级| 精品无码三级在线观看视频| 国产精品自线在线播放| 国产内射一级一片内射高清视频 | 欧美饥渴熟妇高潮喷水| 日韩av无码精品人妻系列| 北条麻妃无码| 亚洲国产午夜精品理论片妓女| 国产精品毛片一区二区| 一本大道av人久久综合| 香蕉在线精品一区二区| 性做久久久久久久| 久久影院午夜伦手机不四虎卡 | 亚洲成人av在线系列| ā片在线观看免费观看| 亚洲国产精品日韩在线| 亚洲精品白浆高清久久| 精品蜜臀国产av一区二区| 九九热精品在线观看| 国产精品午夜福利在线观看| 亚洲香蕉伊综合在人在线|