外部宣言した定数を添え字とする配列の問題

解決


omiomi  2004-12-15 04:40:49  No: 55685

A.cppファイル中で
extern const TEISU=10;

B.cppファイル中で
extern const TEISU;

int HAIRETSU[TEISU];

とすると、配列の添え字TEISUが定数とみなされず、エラーとなります。
(TEISUを1や2の整数に変えるとうまくいきます)
また、B.cppファイル中の別の部分ではTEISUは10として使えます。
case TEISU でも同じエラーが起こります。
これはなぜでしょうか?
また対策は何でしょうか?
よろしくおねがいします。


YuO  2004-12-15 07:42:53  No: 55686

constオブジェクトを定数式として扱えるのは,
そのオブジェクトが定義された翻訳単位のみだからです。

そもそも,TEISUをわざわざexternする必要があるのですか?
どっかのヘッダファイルに,
const int TEISU = 10;
と書いておけばよいだけでは?


omiomi  2004-12-17 03:27:32  No: 55687

そのやり方でやります。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加