• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数名に日本語を用いる際の問題や注意)

VC++2008で変数名・サブルーチン名に日本語を使用する際の問題や注意

このQ&Aのポイント
  • VC++2008で変数名やサブルーチン名に日本語を使用する場合には、発生するであろうバグや不具合はほとんどありません。
  • コードに日本語を使用すること自体には賛否がありますが、コンパイルできるのであれば使用しても問題ありません。
  • 開発したいプログラムが学術計算を目的としており、公開しないため問題はありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>VC++2008で変数名・サブルーチン名に日本語を使用した際に、「発生するであろうバグや不具合」というものはあるのでございましょうか? ないです。 厳密にいえば、VC++2008の仕様として識別子に使える文字以外を使用してるわけですから、 それはVC++2008のバグや不具合ではなく「識別子に、そのような文字を使ってる事がバグ」だからです。 http://msdn.microsoft.com/ja-jp/library/565w213d(v=vs.90).aspx

MKT_
質問者

お礼

 wormhole様  どうもありがとうございます!m(_ _)m >識別子に使える文字 >http://msdn.microsoft.com/ja-jp/library/565w213d(v=vs.90).aspx  初めて拝見致しました。と言いますことは、ここで規定している文字以外は「使うな」と言うことでございますね^^;  おそらく「保証対象外」であるのはほぼ確実であろうと考えてはおりましたが、実際に「変な挙動」をしたケースがあるのかどうかを知りたかった次第でございます。 >ないです。 とはっきりご回答いただき助かりましたm(_ _)m  wormhole様のような、解答数の非常に多いお詳しい方に拝見いただけて良かったです。この度はご親切に誠にありがとうございました!!m(_ _)m

その他の回答 (1)

回答No.1

なぜ、発生するであろうバグや不具合」を気にしてまで日本語を使いたいのかしら?

MKT_
質問者

お礼

 episteme様  はい、FORTRAN(英語のみ)でコーディングしていた時と比べ、vb.netでわざと変数名を全て全角文字にしておいた時は、見直す際に「自分が作成した変数」がコード全体の中の何処にあるのかがエディタ上で非常に分かりやすく、コーディングとデバッグ作業が非常に早かったためです。  英語は非常に好きですので「日本語⇔英語」翻訳で困る事はございませんが、英語は説明文が長くなる事が多いです。 日本語は「漢字」の機能が非常に良く、2文字だけで表現出来る事が多いためコードが短くなります。 例えばまず【例2】では「Str最大磁束密度」が「自作した変数」でありかつ「コード中のどこにいるのか」が一瞬でわかりますが、【例1】のように英語にしようと致しますと「magnetic flux density distribution」などという名前はとても書けず、そして省略しようとしますと意味の取り違えが原因でコーディングミスする可能性が出てきますので、「この変数に何が入っているのか」を上まで遡って確実に把握する必要性が出てまいります。  更に【例1】の場合は他の場所にその変数がいないのかどうかを半角英文字の中から探し出す時間も余分にかかります。  また、全角文字を使用することで、全体を見た時に「全角文字以外は変数名ではない」事が分かりますので、VbStrConv.ProperCase付近を眺めた際に「VbStrConv.」が「元々用意されているコードである」事も一目でわかります。  CBX_Replaceなどについては関数のReplaceと一見紛らわしくすらございます。 【例1】 If CBX_Replace.SelectedIndex = 0 Then DGVList(12, iline).Value = Str_MaxMagFluxDens + StrConv(Text2, VbStrConv.ProperCase) + Text3 + TextExtension ElseIf CBX_Replace.SelectedIndex = 1 Then DGVList(12, iline).Value = Str_MaxMagFluxDens + StrConv(Text2, VbStrConv.Uppercase) + Text3 + TextExtension 【例2】 If CBX置換.SelectedIndex = 0 Then DGVリスト(12, 行).Value = Str最大磁束密度 + StrConv(拡張子以外2, VbStrConv.ProperCase) + 拡張子以外3 + 拡張子 ElseIf CBX置換_StConv.SelectedIndex = 1 Then DGVリスト(12, 行).Value = Str最大磁束密度 + StrConv(拡張子以外2, VbStrConv.Uppercase) + 拡張子以外3 + 拡張子

関連するQ&A