質問: C言語の質問です。 Const定数で定義した値を、#defineで定義した場合、エラーになりますでしょうか。
回答: 『Const定数で定義した値』 定義してみます。 const int Const定数 = 5; 『#defineで定義した場合』 定義してみます。 #define X 5 //「Const定数で定義した値」 #define Y Const定数 //「Const定数で定義した」名前 『エラーになりますでしょうか。』 いや、エラーにはなりませんが。 反対の定義もやってみます。 #define 5 X //「Const定数で定義した値」 #define Const定数 Y //「Const定数で定義した」名前 さすがに #define 5 とかっていうのはエラーです。識別子を書くべきところに 5 という数値を書いてしまってもまずいですから。 一方、「Const定数」という名前を #define する分には別に問題はありません。ただ、この #define によって「Const定数」が「Y」に置換されてしまいますのでね。後で『Const定数で定義した値』にアクセスしたいときは注意が必要です。 ~ Visual C++ の例 ~ #pragma push_macro("Const定数") #undef Const定数 const int 別の定数 = Const定数; #pragma pop_macro("Const定数") このようにして「#defineで定義した」ものを一時的に無効にする形です。