ある2つのプロジェクトがあり、
片方では20文字以上の変数を宣言できずに
コンパイルエラーになります。
もう片方では20文字以上も可能であり
どういうことなのかさっぱりわかりません。
どこかにそういう設定がありますか?
都合により変数名の長さをちじめることはできません。
どうかエラーにならない方法をご教授ください。
環境はWinXPでVC6.0です。
すみません。解決しました。
同じ名前の#defineがあったためエラーになってました。
お騒がせいたしました。
> 片方では20文字以上の変数を宣言できずに
> コンパイルエラーになります。
そのエラーを起こすコードとエラーメッセージを呈示してください。
VC6が20文字程度のシンボルを食えないとは考えにくいのです。
…… orz
コンパイルエラーと言っても色々あると思いますが、
どんなエラーが出ているのでしょう?
それによって解釈の仕方も変わると思いますけれど。
エラーの内容と言うは大事です。
こういう質問をするときにエラー内容を提示しないのは
質問していないのと同じ事です。
VCのHELPを見てみてください。
C++識別子の項目に以下の記述があります。
Visual C++ の識別子として有効なのは、最初の 247 文字だけです。
コンパイラはユーザー定義型の名前を 装飾 して型情報を保存するので注意が必要です。
つまり、型情報も含めた装飾名の長さを、247 文字以内に収めなくてはなりません。
装飾名については、『Visual C++ プログラマーズ ガイド』の「装飾名」を参照してくだ
さい。装飾された識別子の長さを左右する要因を、次に示します。
・ユーザー定義型またはユーザー定義型の派生型のオブジェクトを示す識別子であるかどうか
・関数の型または関数の派生型を示す識別子であるかどうか
・関数への引数の数
上記の内容からいくと装飾名の長さが247文字に収めよとありますから
その変数名だけでは判断できないかもしれません。
とはいえ、エラー内容の提示がないので実際のところは良く分かりませんね。
がーん、せっかく書いたのにぃー。(T-T)
>同じ名前の#defineがあったためエラーになってました。
これならエラー内容を見ればわかりそうな内容ですがねぇ。
あっ、しつこいですか、そうですか。
失礼しました。
どうもすみません。
エラー内容は以下でした。
初心者には難しいエラー内容だと思いますが、
経験者なら一発なんでしょうね。
問題のコード
const DWORD XXX_XXX_XXXXXXX_XXXXXX = 0x1; // 2092行目
エラー内容
aaa.h(2092) : warning C4091: 空白の宣言が見つかりました。
aaa.h(2092) : error C2143: 構文エラー : ';' が 'constant' の前に必要です。
aaa.h(2092) : fatal error C1004: 予期せぬ EOF が検出されました。
これで1字へらしたらたまたまコンパイルが通ったので
勘違いしてしまいました。
面白!!