最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在C++中自定義宏的簡單方法

 更新時間:2015年07月15日 09:18:11   投稿:goldensun  
這篇文章主要介紹了在C++中自定義宏的簡單方法,作者建議使用類似定義函數(shù)一樣的方法來定義宏,需要的朋友可以參考下

可以使用宏定義沒有返回值的“函數(shù)”。例如:

 

復制代碼 代碼如下:
#define PrintMax(a, b) \   do \   { \     int x = a, y = b; \     printf("Max: %d\n", x > y ? x : y);\   } while (0) // ... PrintMax(3, 4);

    這樣的“函數(shù)”與真正意義上的函數(shù)有本質的區(qū)別,因為宏是一個編譯前行為,僅僅是編譯前對文本進行替換。在Python源碼中,經(jīng)??梢钥吹较旅骖愃频暮甓x:

 #define foo(x) \ do { \  ... \ } while (0) 

    為什么要使用do { ... } while (0)這樣的語法而不直接使用 { } 呢?定義了上面這個宏,我們就可以在代碼中使用類似這樣的代碼:foo(3); 注意結尾的分號,它看起來很像一個函數(shù),實現(xiàn)上它表示一條語句。如果使用 { } 來代替 do { ... }  while (0),那么使用分號顯然是個語法錯誤。

    使用宏時,有幾點要特別注意:

    要特別留心空格。下面的兩個宏是一樣的:

 #define foo(x) (x << 2) #define boo (x) (x << 2) //注意括號前面的空格 

    用宏給類型取別名與typedef有很大的區(qū)別。例如:

復制代碼 代碼如下:
#define INT int * INT p1, p2; // p1是指針,p2是一個int變量 typedef int * INT; INT p1, p2; // p1, p2都為指針 //--------------------------------------------------- #define LONG long unsigned LONG v1; // v1是一個無符號的long變量 typedef long LONG; unsigned LONG v1; // 錯誤哦~~~ 
 

您可能感興趣的文章:

相關文章

  • C語言題解Leetcode56合并區(qū)間實例

    C語言題解Leetcode56合并區(qū)間實例

    這篇文章主要為大家介紹了C語言題解Leetcode56合并區(qū)間實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • C++/C 回文字符串的實例詳解

    C++/C 回文字符串的實例詳解

    這篇文章主要介紹了C++ 回文字符串的實例詳解的相關資料,需要的朋友可以參考下
    2017-07-07
  • 用C語言實現(xiàn)推箱子游戲實例

    用C語言實現(xiàn)推箱子游戲實例

    大家好,本篇文章主要講的是用C語言實現(xiàn)推箱子游戲實例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • C++ 如何實現(xiàn)多線程與線程同步

    C++ 如何實現(xiàn)多線程與線程同步

    多線程中的線程同步可以使用,CreateThread,CreateMutex 互斥鎖實現(xiàn)線程同步,通過臨界區(qū)實現(xiàn)線程同步,Semaphore 基于信號實現(xiàn)線程同步,CreateEvent 事件對象的同步,以及線程函數(shù)傳遞單一參數(shù)與多個參數(shù)的實現(xiàn)方式。
    2021-06-06
  • C++接口文件小技巧之PIMPL詳解

    C++接口文件小技巧之PIMPL詳解

    C++ 里面有一些慣用法(idioms),如 RAII,PIMPL,copy-swap、CRTP、SFINAE 等,今天要說的是 PIMPL,即 Pointer To Implementation,指向實現(xiàn)的指針,感興趣的可以了解一下
    2023-06-06
  • 如何用C++制作LeetCode刷題小技巧-錯題記錄本

    如何用C++制作LeetCode刷題小技巧-錯題記錄本

    這篇文章主要介紹了如何用C++制作LeetCode刷題小技巧-錯題記錄本的方法,需要的朋友可以參考下
    2021-04-04
  • C語言實現(xiàn)簡單的學生學籍管理系統(tǒng)

    C語言實現(xiàn)簡單的學生學籍管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的學生學籍管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C/C++中常用加密與解密算法的實現(xiàn)

    C/C++中常用加密與解密算法的實現(xiàn)

    這篇文章主要為大家詳細介紹了一些在C++中常用的加密與解密算法,這其中包括Xor異或、BASE64、AES、MD5、SHA256、RSA等,感興趣的小伙伴可以學習一下
    2023-11-11
  • C語言中new與malloc的區(qū)別詳解

    C語言中new與malloc的區(qū)別詳解

    這篇文章主要介紹了C語言中new與malloc的區(qū)別詳解,new是運算符,可以用于動態(tài)分配,如果想要撤銷內存使用delete,new運算符使用的一般格式為new類型,用new分配數(shù)組空間時不能指定初值,需要的朋友可以參考下
    2023-10-10
  • QT中進程的創(chuàng)建實現(xiàn)

    QT中進程的創(chuàng)建實現(xiàn)

    本文主要介紹了QT中進程的創(chuàng)建實現(xiàn),詳細介紹了創(chuàng)建進程的整個過程,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2023-08-08

最新評論

清水河县| 阿拉善左旗| 高州市| 长海县| 句容市| 钦州市| 山丹县| 格尔木市| 江津市| 德安县| 临泉县| 安徽省| 古丈县| 阿尔山市| 麟游县| 肇东市| 乌兰察布市| 曲靖市| 水富县| 大丰市| 苍梧县| 临桂县| 成安县| 南平市| 富源县| 阳春市| 安顺市| 星座| 丹东市| 莎车县| 盐城市| 兴海县| 翁牛特旗| 石家庄市| 望都县| 米泉市| 南靖县| 务川| 天气| 安溪县| 攀枝花市|