91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C宏定義中的‘#’和‘##’

發布時間:2020-04-14 08:54:06 來源:網絡 閱讀:442 作者:暮色伊人 欄目:編程語言

/*
#是把宏參數變為一個字符串,##是把兩個宏參數連接在一起。

*/

#include <stdio.h>
#define f(a,b) a##b
#define g(a)  #a
#define h(a) g(a)

int main()
{   
    f(1, 2);//宏展開: 12;
    g(3);   //宏展開: "3"

    /*
    展開宏函數的規則:
    在展開當前宏函數時,如果形參有#或##則不進行宏參數的展開,
    否則先展開宏參數,再展開當前宏。
    */
    printf("%s\n", h(f(1, 2)));//12
    printf("%s\n", g(f(1, 2)));//f(1,2) ,不進行宏參數的展開

    system("pause");
    return 0;
}

綜合以上:
第一行h(f(1,2)),由于h(a)非#或者##所以先展開其參數f(1,2),即12,所以變成h(12),然后再宏替換為g(12),再次替換為12。
第二行g(f(1,2)),宏g(a)帶有#,所以里面的f(1,2)不展開,所以變成f(1,2)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌图县| 全州县| 辽中县| 沧州市| 河西区| 社会| 赣州市| 宁远县| 响水县| 大姚县| 阳新县| 平昌县| 屯留县| 库伦旗| 乡宁县| 剑阁县| 册亨县| 淳化县| 集贤县| 彰化县| 五台县| 右玉县| 天水市| 岳阳县| 慈溪市| 宣城市| 宿松县| 鹰潭市| 林西县| 牙克石市| 札达县| 从化市| 墨江| 乌鲁木齐市| 柘城县| 新昌县| 霍林郭勒市| 崇信县| 香河县| 青阳县| 水富县|