変数名の長さ制限 – プログラミング – Home

通知
すべてクリア

[解決済] 変数名の長さ制限


ししめ
 ししめ
(@ししめ)
ゲスト
結合: 20年前
投稿: 3
Topic starter  

ある2つのプロジェクトがあり、
片方では20文字以上の変数を宣言できずに
コンパイルエラーになります。
もう片方では20文字以上も可能であり
どういうことなのかさっぱりわかりません。
どこかにそういう設定がありますか?
都合により変数名の長さをちじめることはできません。
どうかエラーにならない方法をご教授ください。

環境はWinXPでVC6.0です。


引用未解決
トピックタグ
ししめ
 ししめ
(@ししめ)
ゲスト
結合: 20年前
投稿: 3
Topic starter  

すみません。解決しました。

同じ名前の#defineがあったためエラーになってました。
お騒がせいたしました。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

> 片方では20文字以上の変数を宣言できずに
> コンパイルエラーになります。

そのエラーを起こすコードとエラーメッセージを呈示してください。
VC6が20文字程度のシンボルを食えないとは考えにくいのです。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

…… orz


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

コンパイルエラーと言っても色々あると思いますが、
どんなエラーが出ているのでしょう?
それによって解釈の仕方も変わると思いますけれど。
エラーの内容と言うは大事です。
こういう質問をするときにエラー内容を提示しないのは
質問していないのと同じ事です。

VCのHELPを見てみてください。
C++識別子の項目に以下の記述があります。

Visual C++ の識別子として有効なのは、最初の 247 文字だけです。
コンパイラはユーザー定義型の名前を 装飾 して型情報を保存するので注意が必要です。
つまり、型情報も含めた装飾名の長さを、247 文字以内に収めなくてはなりません。
装飾名については、『Visual C++ プログラマーズ ガイド』の「装飾名」を参照してくだ
さい。装飾された識別子の長さを左右する要因を、次に示します。

・ユーザー定義型またはユーザー定義型の派生型のオブジェクトを示す識別子であるかどうか
・関数の型または関数の派生型を示す識別子であるかどうか
・関数への引数の数

上記の内容からいくと装飾名の長さが247文字に収めよとありますから
その変数名だけでは判断できないかもしれません。
とはいえ、エラー内容の提示がないので実際のところは良く分かりませんね。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

がーん、せっかく書いたのにぃー。(T-T)


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

>同じ名前の#defineがあったためエラーになってました。

これならエラー内容を見ればわかりそうな内容ですがねぇ。
あっ、しつこいですか、そうですか。
失礼しました。


返信引用
ししめ
 ししめ
(@ししめ)
ゲスト
結合: 20年前
投稿: 3
Topic starter  

どうもすみません。

エラー内容は以下でした。
初心者には難しいエラー内容だと思いますが、
経験者なら一発なんでしょうね。

問題のコード
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字へらしたらたまたまコンパイルが通ったので
勘違いしてしまいました。


返信引用
超初心者
 超初心者
(@超初心者)
ゲスト
結合: 24年前
投稿: 139
 

面白!!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました