私が理解していることから#define blah 8
、マクロです。一方、#
はプリプロセッサディレクティブです。
#include、#if、#ifdefなどと言えますか。マクロでもありますか、それとも他の何かと呼ばれていますか?それとも、マクロは#defineステートメントにのみ使用される用語ですか?
私が間違っている場合は訂正してください。
私が理解していることから#define blah 8
、マクロです。一方、#
はプリプロセッサディレクティブです。
#include、#if、#ifdefなどと言えますか。マクロでもありますか、それとも他の何かと呼ばれていますか?それとも、マクロは#defineステートメントにのみ使用される用語ですか?
私が間違っている場合は訂正してください。
で始まる行#
は前処理ディレクティブです。これらは、プリプロセッサに何かを実行するように指示するディレクティブです。
#include
、、、、、、、、、、、、、、およびはすべて前処理ディレクティブです。_ #if
_ #ifdef
_ (のみを含む行も前処理ディレクティブですが、効果はありません。)#ifndef
#else
#elif
#endif
#define
#undef
#line
#error
#pragma
#
#define blah 8
は前処理ディレクティブであり、マクロではありません。 blah
マクロです。この#define
前処理ディレクティブはblah
、トークンで置き換えられたオブジェクトのようなマクロとして指定されたマクロを定義します8
。
#include
、#if
などはプリプロセッサの機能です。
#define blah 8
プリプロセッサディレクティブであり、blahという名前の新しいマクロを宣言します。
#define
ステートメントの結果です。プリプロセッサ:前処理(ファイルインクルード、マクロ展開、条件付きコンパイル)を実行するプログラム。
#define
マクロ:他の式に評価されるプリプロセッサディレクティブによって定義された単語。
プリプロセッサディレクティブ:プリプロセッサによって認識される特別な#キーワード。
プリプロセッサは、コンパイラに渡す前にソースファイルを変更します。
プリプロセッサは、コンパイラの前に実行されるプログラムと考えてください。
プリプロセッサディレクティブは、プリプロセッサプログラムへのコマンドのようなものです。Cのいくつかの一般的なプリプロセッサディレクティブは次のとおりです。
#include <header name>
-指定されたファイルのテキストを現在のファイルに貼り付けるようにプリプロセッサに指示します。#if <value>
-値が真であるかどうかをチェックします。真である場合は、次のコードが含まれます。#endif
#define
-定数の定義とマクロの作成に役立ちますマクロはコードの断片の名前です。したがって、名前が使用されている場合は常に、プリプロセッサプログラムによってコードの断片に置き換えられます。
例えば:
#define BUFFER_SIZE 100
コードでは、BUFFER_SIZEを使用すると、100に置き換えられます。
int a=BUFFER_SIZE;
ここでは100になります。
たとえば__DATE__
、 Cには多くの定義済みマクロもあります__TIME__
。