第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C++中 預(yù)定義宏是否應(yīng)該由inline函數(shù)取代

C++中 預(yù)定義宏是否應(yīng)該由inline函數(shù)取代

暮色呼如 2018-07-07 14:21:58
在<Effective C++>中,有一個(gè)條款是這樣的:現(xiàn)代的C++程序設(shè)計(jì)原則不推薦適用宏定義常量或函數(shù)宏,應(yīng)該盡量少的使用 #define ,如果可能,用 const 變量或 inline 函數(shù)代替。但在Debug程序的時(shí)候需要一些預(yù)定義宏,如__DATE__,__FILE__,__LINE__,__FUNCTION__等。請(qǐng)問(wèn)面對(duì)這種情況,是否應(yīng)該用inline來(lái)代替define呢。如果需要 下面這種情況應(yīng)該如何替代呢。#define log_err(M, ...) fprintf(stderr, "[ERROR] (%s:%d: errno: %s) " M "\n", __FILE__, __LINE__,  clean_errno(), ##__VA_ARGS__)
查看完整描述

2 回答

?
明月笑刀無(wú)情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊

我認(rèn)為使用define的最大價(jià)值在于是否可以將大段的重復(fù)性代碼濃縮為define,后續(xù)使用可能用一個(gè)宏就解決大段的重復(fù)性代碼。比如mfc中的消息映射,成功的將很多重復(fù)性的代碼濃縮為一兩個(gè)宏,雖然mfc本身很復(fù)雜,但是它的宏定義的使用堪稱教科書。其他常用的使用場(chǎng)景比如定義不定長(zhǎng)的函數(shù),你給出的這個(gè)例子就是。比如與操作系統(tǒng)和編譯環(huán)境有關(guān)的,比如__FILE__,__LINE__,DEBUG等。至于你講的可能的代替,我認(rèn)為是定義常量、定義簡(jiǎn)單的函數(shù)等。

查看完整回答
反對(duì) 回復(fù) 2018-07-13
?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

樓上的意思對(duì)的,對(duì)于可以替換的宏定義,比如定義的宏常量,或者宏函數(shù),盡量用const 或者內(nèi)聯(lián)

查看完整回答
反對(duì) 回復(fù) 2018-07-13
  • 2 回答
  • 0 關(guān)注
  • 160 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)