初心者のときに遭遇する前処理コマンド

1604 ワード

新米の时出会った前処理命令今日1人の新しい学友が1つの典型的な前処理の问题を闻きに来て、私もその年このような问题に出会って、贴って出して、もっと多くの人に直接探し当てることができます
プリプロセッシングコマンド
#,##
#および##オペレータは、#defineマクロで使用されます.#の後の最初のパラメータを引用符付き文字列に戻すには、#を使用します.たとえば、コマンド
    #define to_string( s ) # s
コンパイラは次のコマンドを実行します.
    cout << to_string( Hello World! ) << endl;
と理解
    cout << "Hello World!" << endl;
を使用して前後の内容を連結します.例えば、コマンド
    #define concatenate( x, y ) x ## y
...
int xy = 10;
...
コンパイラは
    cout << concatenate( x, y ) << endl;
と解釈する
    cout << xy << endl;
当然、標準出力には'10'が表示する.
#line
構文:
  #line line_number "filename"
            
#lineコマンドは__を変更するために使用されますLINE__ および_FILE__変数の値.ファイル名はオプションです.LINE__ および_FILE__ 変数は、読み込む現在のファイルと行を記述する.
    #line 10 "main.cpp"
行番号を10に変更し、現在のファイルをmain.cppに変更します.
定義済み変数
構文:
  __LINE__
            __FILE__
            __DATE__
            __TIME__
            _cplusplus
            __STDC__
            
次のパラメータは、異なるコンパイラで異なる場合がありますが、一般的には使用できます.
  • __LINE__ および_FILE__ 変数は処理中の現在の行と現在のファイルを表す.
  • __DATE__ 変数は、month/day/year(月/日/年)の現在の日付を表します.
  • __TIME__ 変数は、hour:minute:second(時:分:秒)の形式で現在の時間を記述します.
  • _cplusplus変数は1つのC++プログラムをコンパイルする時だけ定義する.
  • __stdC__ 変数はCプログラムをコンパイルするときに定義され、C++をコンパイルするときに定義されることもある.