欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c++ 編程 幾個有用的宏詳解

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

1. 打印錯誤信息

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

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

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

2. 方便調(diào)試

__FILE, __LINE, __FUNCTION是由編譯器預(yù)定義的宏,其分別代表當(dāng)前代碼所在的文件名,行號,以及函數(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(為實現(xiàn)函數(shù)重載所做的改變)。如果C++中需要使用C編譯后的庫函數(shù),則會提示找不到函數(shù),因為符號名不匹配。C++中使用extern “C”解決該問題,說明要引用的函數(shù)是由C編譯的,應(yīng)該按照C的命名方式去查找符號。

如果foo是C編譯的庫,如果要在C++中使用foo,需要加如下聲明,其中__cplusplus是c++編譯器預(yù)定義的宏,說明該文件是被C++編譯器編譯,此時引用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__)

前兩者存在多余逗號問題,第三個宏使用##去掉可能多余的逗號。

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

相關(guān)文章

  • C++中volatile關(guān)鍵字的使用詳解以及常見的誤解

    C++中volatile關(guān)鍵字的使用詳解以及常見的誤解

    volatile 關(guān)鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改,比如:操作系統(tǒng),硬件或者其他線程等
    2020-01-01
  • C語言中#define定義的標識符和宏實例代碼

    C語言中#define定義的標識符和宏實例代碼

    C語言中,可以用#define定義一個標識符來表示一個常量,下面這篇文章主要給大家介紹了關(guān)于C語言中#define定義的標識符和宏的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • C++?AnimeGAN實現(xiàn)照片一鍵動漫化

    C++?AnimeGAN實現(xiàn)照片一鍵動漫化

    AnimeGAN是是由神經(jīng)網(wǎng)絡(luò)風(fēng)格遷移加生成對抗網(wǎng)絡(luò)(GAN)而成,它是基于CartoonGAN的改進,并提出了一個更加輕量級的生成器架構(gòu)。本文將介紹如何運用AnimeGAN實現(xiàn)照片一鍵動漫化,需要的可以參考一下
    2021-11-11
  • C/C++實現(xiàn)手寫數(shù)字識別的示例詳解

    C/C++實現(xiàn)手寫數(shù)字識別的示例詳解

    這篇文章主要為大家詳細介紹了如何使用C/C++實現(xiàn)手寫數(shù)字識別,分別處理 32*32 文本數(shù)據(jù)集和mnist 28*28 png數(shù)據(jù)集,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-10-10
  • 淺談C++標準庫

    淺談C++標準庫

    C++標準庫是一組C++模板類,提供了通用的編程數(shù)據(jù)結(jié)構(gòu)和函數(shù),本文簡單講解C++標準庫包含的一些內(nèi)容,可能會對小伙伴的學(xué)習(xí)或工作有一定的幫助,大家一起來看看吧
    2021-08-08
  • 浮點數(shù)在計算機中存儲方式是怎樣的

    浮點數(shù)在計算機中存儲方式是怎樣的

    這篇文章介紹了浮點數(shù)在計算機中是如何存儲的,講解的比較詳細,有需要的朋友可以參考一下。
    2016-06-06
  • C語言通訊錄管理系統(tǒng)課程設(shè)計

    C語言通訊錄管理系統(tǒng)課程設(shè)計

    這篇文章主要為大家詳細介紹了C語言通訊錄管理系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型)

    C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型)

    這篇文章主要介紹了C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解C++編程中標記語句與復(fù)合語句的寫法

    詳解C++編程中標記語句與復(fù)合語句的寫法

    這篇文章主要介紹了C++編程中標記語句與復(fù)合語句的寫法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-01-01
  • 基于C++中sprintf的錯誤總結(jié)詳解

    基于C++中sprintf的錯誤總結(jié)詳解

    本篇文章是對C++中sprintf的錯誤進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論