欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

1. 打印錯誤信息

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

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

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

2. 方便調試

__FILE, __LINE, __FUNCTION是由編譯器預定義的宏,其分別代表當前代碼所在的文件名,行號,以及函數(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編譯的,應該按照C的命名方式去查找符號。

如果foo是C編譯的庫,如果要在C++中使用foo,需要加如下聲明,其中__cplusplus是c++編譯器預定義的宏,說明該文件是被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ī)淼腸++ 編程 幾個有用的宏詳解全部內容了,希望大家多多支持我們~

上一篇:淺談C++ Explicit Constructors(顯式構造函數(shù))

欄    目:C語言

下一篇:利用反射獲得類的public static/const成員的值實例

本文標題:c++ 編程 幾個有用的宏詳解

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1860.html

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權所有