• ベストアンサー

変数名のつけ方が苦手みたいです><

変数名のつけ方が苦手みたいで困っています。 「変数名のつけ方」などのサイトも読んでいるのですが、 ここでも質問させてください。 ・変数を作るとき(その言語での規則とは別に)、 みなさんなりに工夫されていることとかあれば教えてください。 ・それから、ループ処理のカウンタには、 伝統的に i~n がよく使われているみたいですけど、 どうしてこの6文字なんでしょうか? ・あと、これはプログラムについての質問ではないのですが、 ディレクトリ名やファイル名の上手なつけ方についても、 教えてほしいです。昔は8文字と拡張子のようでしたが、 今もこれを守っていますか? たくさん聞いてすみません。どれかひとつでも結構です。 よろしくお願いします。

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

  • ベストアンサー
  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

http://local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B http://ameblo.jp/argv/entry-10031517216.html 命名規則は仕事単位で規約がありますのでそれに従います。何も無ければ、適当なルールを自分で決めて。ローマ字や英語の略が多いですね。システムハンガリアン(int型なら接頭辞にiをつける等)を薦められる場合もありますが、これにこだわった事は無いです。 ループ変数の6文字は、昔のFORTRANの時代の「暗黙の型宣言」による部分が多いのかもしれません。昔のFORTRANでは型宣言をしなくても良くて、その場合はi~nではじまる変数は整数型とみなされました。ので、ループには浮動小数点で発生する誤差をなくすために整数を使うという定石がありますのでそれと共に普及したのでは。 ファイル名は、今は自由につけています。でも、空白や全角文字は不具合が出ることがあるので避けてます。昔までは8.3形式でしたが、今や使う機会もないですね。

oshiete_boo
質問者

お礼

ご紹介いただいたURL興味深く読ませていただきました。 またループ変数については、私のぜんぜん知らない時代ですね^^; 参考になる意見をありがとうございました。

その他の回答 (1)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

>みなさんなりに工夫されていることとかあれば教えてください。 後で変数名を見てわかるような名前をつけるくらい。 変数は通常スコープが短く、ローカルなオブジェクトなのでそんなに注意はしていない。外部に公開されるクラス名やメソッド名の方に気をつかう。 >どうしてこの6文字なんでしょうか? 慣習です。 >ディレクトリ名やファイル名の上手なつけ方についても、教えてほしいです。 言語によると思いますが、ネームスペースに対応したディレクトリを作って、クラス名/モジュール名と同じファイル名をつけることが多いです。

oshiete_boo
質問者

お礼

質問し忘れてました。>< たしかにクラスやメソッドも、 悩みます。英語も苦手だし。 変数についてはわりと気楽に決めてるのですね。 私の場合、ずっと昔に作ったソースを久しぶりに開くと、 何の変数だったかしらと考えることがたびたびあります。 6文字については何か意味があるのかと思いました。 参考になる意見をありがとうございました。

関連するQ&A

  • 配列を使わずに、変数名を動的にループで回したい

    配列を使わずに、変数名を動的にループで回したい 大学の課題をやっている途中に思ったことなのですが……。 プログラム中に同じ型の変数p1,p2,p3があり、それぞれの変数にループで同じ処理を施したいと思っています。 しかし、「p(i)」や「("p" + i)」などと、変数どうしを別のものとして認識させようとしても、コンパイラから警告が出て上手くいきません。 配列を使えば、このような処理が出来ることはわかるのですが、使う変数名を指定されてしまっているために、今回は配列を使えません。 出来るか出来ないか、出来る場合は方法を知りたいです。 後、今回はC言語のプログラムで利用出来るかが自分にとっての問題なのですが、C言語以外のこのプログラミング言語なら出来る、とかの情報もこの機会に知りたいです。 お答え出来る範囲でいいので、もしよければ回答お願いします。

  • 変数名のこだわりについて

    私はC言語始めて10ヶ月ぐらいのものなのですが、 現在ゲームプログラミングを学んでいます。 C言語で用いている変数名や関数名、クラスのオブジェクト名 など、本当に適当につけていたのですが、 最近とてつもなくソースコードが読みにくくて 変数名のつけ方に規則みたいなものを作ろうと思うのですが、 どなたかゲームプログラミングなどのプログラミング をやっている方々、参考までに、どんな風に名前をつけているか を教えてください。 そういうことを記述しているサイトでもかまいません。 よろしくお願いします。

  • 動的な変数名のつけ方について

    ■環境 OS:XP 言語:C++ コンパイラ:Visual C++ 2008 char*やstd::string等で格納された文字列を使用して 変数を宣言することは可能でしょうか。 用途として、テキストファイル等から文字列を取得し その文字列を変数名としてプログラミング内で使用するという方法を考えています。 よろしくお願い致します。

  • 変数名(配列)の中の変数

    配列変数の名前の中に変数を入れたい場合、どのように記述すればいいのでしょうか? use strictを用いて、以下のように書いてみましたが、エラーが出て上手く動きません。 ループ x: 1-3 ループ y: 1-2 ${"answer$x"[$y]}=入力値 ←この部分を教えてください。    ループ閉 y ループ閉 x --------------------     answer1[1] answer1[2] answer2[1] answer2[2] answer3[1] answer3[2] とループを通るように、変数名を設定したいのですが、 エラーが出て実行ができません。 エラー:Can't use string ("answer1") as an ARRAY ref while "strict refs" in use at~ -------------------- 実際のプログラムは以下のように書いています。(該当部分のみ) for(my $x=1; $x<$num; $x++) { for (my $y=0; $y<$n; $y++) { my $y = ($x*$n)+$d; my @line = split(/\r/, $data[$y]); my @line0 = split(/\t/, $line[0]); ${"answer$x"[$y]} = $line0[0]; } } よろしくお願いします。

  • Perl: 数字だけの変数名について

    お世話になります。 ラクダ本こと「プログラミング言語Perl」には「2.5 名前」という項目に「厳密な話をすれば、ファニー文字の後ろに続く名前は、識別子でなくても構わない。数字で始まり、数字のみで構成される名前-たとえば$123-を使うこともできる」と書かれています。 しかし、実際に、 $123 = sqrt(5); print "5の平方根は", $123, "です\n"; というプログラムを実行すると、 Modification of a read-only value attempted at foo.pl at line 1 というエラーメッセージが出て終了します。 これは、$123というのが、正規表現でカッコによるサブパターンを取得した、123番目のサブパターンにマッチするからだと思います。 ちなみにこれを、 $012 = sqrt(5); print "5の平方根は", $012, "です\n"; と変えるとちゃんと動作します。 ということで、数字の変数名を付ける場合は、 ・$0で始まる2桁以上 ・すべて数字 という規則である、と考えていいのでしょうか。 ($0はプログラム名という特殊変数になるので。。。) つまり、本の間違いでしょうか?

    • ベストアンサー
    • Perl
  • C/C++言語で変数名から変数のアドレスを取得する

    C/C++言語で変数名から変数のアドレスを取得する方法があれば、ご教示願います。 例えばですが、関数GetProcAddress()は、関数の文字列からエクスポート済みの関数のアドレスを戻り値で返しています。 GetProcAddress()と同じようにアドレスを取得したい変数名の文字列を渡して、変数のアドレスを取得したいです。 よろしくお願いします。

  • 未初期化変数の扱い方についての質問

    Microsoft Visual C++ 2008を使用しています。 #include <stdio.h> int main() {     float a;         … for(;;) {          …          scanf("%f",&a);          …          printf("%f",a); }       } このようなプログラムを書いて、実行しました。 aという変数に数字を入力すれば問題ないのですが、誤って文字を入力してしまうと、-107374176という値が連続で出力されます。(for文のループが無限に繰り返される。)  for文ではあるキーワードを入力するとループから出るというプログラムになっています。  間違って文字を入力する時にどの文字を入れても必ず、-107374176の値になるので調べたら、「-107374176は0xccccccccでvcのデバッグビルド時の未初期化変数の値と一致する。」という内容をネットで見つけました。  変数として定義されていて、初期化されていない変数を未初期化変数ということなので、aが未初期化変数になるのはわかるのですが、なぜループが無限につづくのかが理解できません。    質問の回答をよろしくお願いします。

  • エクセルVBA オブジェクト名の変わりになる変数

    質問しつれいします。 エクセルVBAでマクロを作っているのですが、 分からないところがあるのでご指導の程お願いしたいです。 テキストボックスを複数つくり、それに順に値を 当てはめていくのですが、それを一つのループでしたいと 考えています。 例えば、text1というオブジェクト名のテキストボックスに text1.value = ○○ という風に、text20まで数字の部分だけ変えてループ関数で値を当てはめていきたいのですが、どうすればいいか分かりません。 変数に"text"という文字列と数字部分を結合したものをあてはめて 数字部分だけループ時に加算していき、 変数.value = ○○ という形で実現したいと思い色々試してみましたが、エラーが出てうまくできません。 わかる方がいらっしゃいましたら是非お教え願えませんでしょうか。 お願いいたします。

  • PHPでFORMから来る変数名を変数にするには

    PHPでFORMから来る変数名を変数にするにはどうしたらよろしいでしょうか? 可変変数など調べたのですが、値を変数にすることは出来ても変数名を変数にする事は難しいようです。 <form action="reg.php"> <input type = "text" name = "comment"> <input type = "submit"> </form> このform内のnameが動的に変わるプログラムで,reg.phpにおいて名前(今ならcomment)を変数に格納したいと思っています。 reg.php 本来なら $comment = _REQUEST['comment']; とすると思うのですが、commentが動的に変動する場合、_REQUEST内をどう書き換えれば良いかが分からず困っています $dynamic_name = _REQUEST['ここをどう書けばよいでしょうか'] このことを考えてから今はform内ですが、formでなくてもどうやって書いてよいか分からず疑問に思いました 例えば $test = 'abc'; としたとき $test_name にtestという文字列を入れたい場合(つまりabcの変数名)どうやって入れたらよいのでしょうか?(もちろんtestと言う名前は動的に変わります) 詳しい方いらっしゃいましたらご回答いただければと思います。 良いアドバイスございましたら教えてください よろしくお願いします

    • 締切済み
    • PHP
  • Drawstringで変数内の文字を表示する方法について

    Drawstringで変数内の文字を表示する方法について c言語初心者です。 ウィンドウに文字を表示するDrawstringという命令で変数内の文字を表示したいです。 たとえば、 char *a="a" DrawString(0,0,a,65535); でコンパイルすると、 宣言の構文エラー というエラーが出ます。 改善点がどうしてもわかりません。 ご指摘お願いします。 あと、c言語では変数に文字を一文字ずつしか入れられないので、文字列を変数に保存して表示したい場合にはforなどでループして表示するしかないんでしょうか? 合わせてお願いします。

専門家に質問してみよう