C++ の定義の使用

C++でのdefineの使用法

C++ 言語では、define の使用法が数多くありますが、ここで整理します。

1. パラメータマクロ定義なし

引数のないマクロには、マクロ名の後にパラメータがありません。
その定義の一般的な形式は次のとおりです。

#define  标识符  字符串

その中の「#」は、これが前処理コマンドであることを示します。「#」で始まるものは前処理コマンドです。「define」はマクロ定義コマンドです。「識別子」は定義されたマクロ名です。「文字列」には、定数、式、フォーマット文字列などを指定できます。
例えば:

#define MAXNUM 99999

したがって、MAXNUM は単純に 99999 として定義されます。

2.パラメトリックマクロ定義がある

C++ 言語では、マクロでパラメータを受け取ることができます。マクロ定義内のパラメータは仮パラメータと呼ばれ、マクロ呼び出し内のパラメータは実パラメータと呼ばれます。
パラメータを含むマクロの場合、マクロを展開するだけでなく、呼び出し中に実際のパラメータを使用して仮パラメータを置き換える必要もあります。
パラメータを含むマクロ定義の一般的な形式は次のとおりです。

 #define  宏名(形参表)  字符串

文字列の個々のパラメータが含まれます。使用時にパラメータを指定してマクロを呼び出す一般的な形式は次のとおりです: マクロ名 (実際のパラメータ リスト);
例:

#define add(x, y) (x + y)

int main()
{
    //输出“1 plus 1 is 2.5.”
    cout << "1 plus 1 is " << add(1, 1.5) << ".\n";

    system("pause");
    return(0);
}

この「関数」は加算を定義していますが、型チェックを行っていないため、テンプレートに似ていますが、テンプレートほど安全ではなく、単純なテンプレートとみなすことができます。

注: 「関数」は (a + b) として定義されています。ここで括弧を追加する理由は、マクロ定義が前処理段階での単純な置換にすぎないためです。単純な置換が a + b の場合、5 * を使用する場合add(2, 3) の場合、値は 5 * (2 + 3) ではなく 5 * 2 + 3、値は 25 ではなく 13 に置き換えられます。

より詳しい利用方法についてはこちら:http://t.csdn.cn/yf99i

おすすめ

転載: blog.csdn.net/MWooooo/article/details/126599848