在<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__)
C++中 預(yù)定義宏是否應(yīng)該由inline函數(shù)取代
暮色呼如
2018-07-07 14:21:58