以下のものがある場合:
#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