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

c++ 編程 幾個(gè)有用的宏詳解

 更新時(shí)間:2016年12月31日 10:18:41   投稿:jingxian  
下面小編就為大家?guī)硪黄猚++ 編程 幾個(gè)有用的宏詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

1. 打印錯(cuò)誤信息

如果程序的執(zhí)行必須要求某個(gè)宏被定義,在檢查到宏沒有被定義是可以使用#error,#warning打印錯(cuò)誤(警告)信息,如:

#ifndef __unix__
#error "This section will only work on UNIX systems"
#endif

只有__unix__宏被定義,程序才能被正常編譯。

2. 方便調(diào)試

__FILE, __LINE, __FUNCTION是由編譯器預(yù)定義的宏,其分別代表當(dāng)前代碼所在的文件名,行號(hào),以及函數(shù)名。

可以在代碼中加入如下語句來跟蹤代碼的執(zhí)行情況:

if(err) {
printf("%s(%d)-%s\n",__FILE__,__LINE__,__FUNCTION__);
}
 

3. C/C++的混合編程

函數(shù)int foo(int a, int b);

在C語言的該函數(shù)在編譯器編譯后在庫中的名字為_foo,而C++中該函數(shù)被編譯后在庫中的名字為_foo_int_int(為實(shí)現(xiàn)函數(shù)重載所做的改變)。如果C++中需要使用C編譯后的庫函數(shù),則會(huì)提示找不到函數(shù),因?yàn)榉?hào)名不匹配。C++中使用extern “C”解決該問題,說明要引用的函數(shù)是由C編譯的,應(yīng)該按照C的命名方式去查找符號(hào)。

如果foo是C編譯的庫,如果要在C++中使用foo,需要加如下聲明,其中__cplusplus是c++編譯器預(yù)定義的宏,說明該文件是被C++編譯器編譯,此時(shí)引用C的庫函數(shù),就需要加extern “C”。

#ifdef __cplusplus
extern “C” {
#endif
   extern int foo(int a, int b);
 
#ifdef __cplusplus
}
#endif
 

4. 可變參數(shù)

#define debug(format, args...) fprintf (stderr, format, args)
#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)

或者#define debug(format, ...) fprintf (stderr, format, ## __VA_ARGS__)

前兩者存在多余逗號(hào)問題,第三個(gè)宏使用##去掉可能多余的逗號(hào)。

以上就是小編為大家?guī)淼腸++ 編程 幾個(gè)有用的宏詳解全部內(nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • C++未定義行為(undefined behavior)

    C++未定義行為(undefined behavior)

    對(duì)于未定義行為,C++標(biāo)準(zhǔn)沒有明確規(guī)定編譯器們應(yīng)該怎么做,那么執(zhí)行的結(jié)果就是不可預(yù)料的。下面我們來詳細(xì)探討下
    2017-02-02
  • C語言實(shí)現(xiàn)彈跳小球動(dòng)畫

    C語言實(shí)現(xiàn)彈跳小球動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)彈跳小球動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語言 淺談棧與隊(duì)列的定義與操作

    C語言 淺談棧與隊(duì)列的定義與操作

    棧和隊(duì)列,嚴(yán)格意義上來說,也屬于線性表,因?yàn)樗鼈円捕加糜诖鎯?chǔ)邏輯關(guān)系為 "一對(duì)一" 的數(shù)據(jù),但由于它們比較特殊,因此將其單獨(dú)作為一章,做重點(diǎn)講解
    2021-11-11
  • C語言版掃雷小游戲

    C語言版掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言版的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • cocos2dx-3.10 C++實(shí)現(xiàn)滾動(dòng)數(shù)字

    cocos2dx-3.10 C++實(shí)現(xiàn)滾動(dòng)數(shù)字

    這篇文章主要為大家詳細(xì)介紹了cocos2dx-3.10 C++實(shí)現(xiàn)滾動(dòng)數(shù)字效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 通過代碼實(shí)例解析c++ vector常用方法

    通過代碼實(shí)例解析c++ vector常用方法

    這篇文章主要介紹了通過代碼實(shí)例解析c++ vector常用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 解析Linux內(nèi)核的基本的模塊管理與時(shí)間管理操作

    解析Linux內(nèi)核的基本的模塊管理與時(shí)間管理操作

    這篇文章主要介紹了Linux內(nèi)核的基本的模塊管理與時(shí)間管理操作,包括模塊加載卸載函數(shù)的使用和定時(shí)器的用法等知識(shí),需要的朋友可以參考下
    2016-02-02
  • C語言判斷大小端的兩種方法

    C語言判斷大小端的兩種方法

    大小端的問題在很多面試筆試中都會(huì)遇到,本文主要介紹了C語言判斷大小端的兩種方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • exit和atexit的區(qū)別詳細(xì)解析

    exit和atexit的區(qū)別詳細(xì)解析

    以下是對(duì)exit與atexit的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-09-09
  • C語言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(AVL樹)實(shí)現(xiàn)方法示例

    C語言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(AVL樹)實(shí)現(xiàn)方法示例

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(AVL樹)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了C語言平衡二叉樹的相關(guān)定義與使用技巧,需要的朋友可以參考下
    2018-01-01

最新評(píng)論

营山县| 正定县| 浦城县| 故城县| 宁化县| 惠安县| 江西省| 信丰县| 六盘水市| 安福县| 荔浦县| 莎车县| 望都县| 林甸县| 延寿县| 罗山县| 那坡县| 丹寨县| 松桃| 前郭尔| 镇江市| 盐山县| 山丹县| 大渡口区| 玛沁县| 克拉玛依市| 威宁| 陕西省| 天长市| 锡林浩特市| 黎川县| 永清县| 漠河县| 泸西县| 象州县| 黑龙江省| 合江县| 宁远县| 廊坊市| 永胜县| 板桥市|