#define変数の種類 質問する

#define変数の種類 質問する

以下のものがある場合:

#define MAXLINE    5000

MAXLINE はどのような型であると理解されていますか? であると想定する必要がありますかint? 何らかの方法でテストできますか?

#define一般的に、 ed 変数の型をどのように判別できますか?

ベストアンサー1

型はありません。単純なテキスト置換です。テキスト 5000 は、MAXLINE がトークンとして表示される場所にドロップされます。

例えば:

int a = MAXLINE;

に値 5000 が設定されますa

その間

char *MAXLINE2 = "MAXLINE";

結果的に

char *50002 = "5000";

したがって、型チェックが必要な場合は、マクロは適していません。代わりに静的定数を宣言すると、コンパイラによって型チェックが実行されます。

static、、constおよびの違いに関する情報については#define、次の質問を含め、多くの情報源があります。C の static、define、const

おすすめ記事