できるだけEnum,inline置換#define
842 ワード
この文は「前処理をコンパイラに置き換える」に変更できます.
まずマクロの使い方:
マクロは一般的に大文字です.#defineではタイプセキュリティチェックは行われませんが、constではデータ型が点灯し、#defineではありません.だからconst定数で#defineを置き換えたほうがいいです.
次に、マクロ(macros)とは何かを言います.関数のように見えますが、関数呼び出しによる追加のオーバーヘッドは発生しません.
すべての実パラメータは括弧で囲まれていますが、template inline関数に置き換えることができます.
const、enums、inlinesを使用すると、前処理のニーズを低減できますが、#includeや#ifdef#ifndefなど、できないものもあります.
まとめ:単純定数については、defines をconstオブジェクトまたはenumsで置き換えることが望ましい.類似関数のマクロについては、defines をinline関数に置き換えることが望ましい.
まずマクロの使い方:
#define ASPECT_RATIO 1.653
マクロは一般的に大文字です.#defineではタイプセキュリティチェックは行われませんが、constではデータ型が点灯し、#defineではありません.だからconst定数で#defineを置き換えたほうがいいです.
const doule AspectRatio = 1.653 //
次に、マクロ(macros)とは何かを言います.関数のように見えますが、関数呼び出しによる追加のオーバーヘッドは発生しません.
#define CALL_WITH_MAX(a,b) f((a) > (b) ? (a) : (b))
すべての実パラメータは括弧で囲まれていますが、template inline関数に置き換えることができます.
template
inline void callWithMax(const T& a , const T& b){
f(a > b ? a : b);
}
const、enums、inlinesを使用すると、前処理のニーズを低減できますが、#includeや#ifdef#ifndefなど、できないものもあります.
まとめ: