dポイントプレゼントキャンペーン実施中!

C/C++
変数のコーディング規約で悩んでいます。

メンバ変数
ローカル変数
引数
グローバル変数(使う機会はない)
など、どう分けようか悩んでいます。

関数はキャメロケースを採用しています。

質問者からの補足コメント

  • 変数名です。すみません

      補足日時:2019/03/23 21:17

A 回答 (7件)

それぞれの言語、プロジェクトの規約に従うべきと思いますが、


ローカル、メンバ、引数で名前を
書き分ける必要性を感じないですね。最近はプリフィックスは流行らないし。

個人的にはメンバの参照は目立たせたいので this を付けてます。

特にコンストラクタでメンバの初期値を引数として受け取る時
別の名前は面倒なので、衝突を避けるのに便利。
引数名の先頭にa/anを付けて a~、an~ とする流儀も有るけど
嫌いです(^^;
    • good
    • 1

個人的な趣味では


できればプレフィックスは付けない
方針. たまに, どうにも困って付けちゃうんだけど, そういうときはなんかモヤモヤっとした居心地の悪さ (&自分のネーミングセンスのなさ) を感じちゃう.

ちなみに「_」で始まる識別子はライブラリに予約されていて, その中でも特に「__」及び「_+大文字」で始まるものは任意の用途で予約されてる. だから, ライブラリが _Name という名前のマクロを使っている可能性はあるし, その状況で「_Name という名前の引数を使って予想外の挙動を示す」としても「プログラマが悪い」と言われて終わる.

あと #5 の「引数とローカル変数って分ける必要ある?」→「確かにローカルと引数を一緒にするのはやめたほうが良いかもですね」というやりとりはなんか噛み合っていない気がする.

余計なことだけど「キャメロケース」じゃなくて「キャメルケース」ね.
    • good
    • 1

例えば


https://msdn.microsoft.com/ja-jp/library/cc44018 …
の「予約名の形式」からを呼んでみましょう。

_ で始まり、その次が大文字の名前

は予約名なので使うな、と書いてあります。
アンダースコアを使うなら、文字の間に使って、連続には使わない、というのが無難です。


私の嗜好で言うならば
・引数とローカル変数って分ける必要ある?
・ローカル変数に接頭辞いる? for( l_i =0 ; l_i < 10 ; l_i ++ ) とか書く?
・privateなフィールドには m_ と付けるのもいいけど
public のにも付けると、main()とかに
cls.m_value = 5 ;
とか言う感じに書かなきゃいけないのが美しくない。
    • good
    • 2
この回答へのお礼

なるほど、予約名...
ありがとうございます!

for文は基本的に
for(int i=0;i<10;i++)とかで書いてます。
範囲for文は
for(auto& it : List)って感じです。

ん~メンバ変数に関してはpublicに置いたことがないのであれですが、
確かにローカルと引数を一緒にするのはやめたほうが良いかもですね

全ての変数をキャメロケースで、
int timeCut;見たいな感じに書いたほうが良いのかな?
ローカル変数とメンバ変数区別出来ないと怖いってイメージあってるけど...

最悪this->で変数呼び出せば良いのかな?

お礼日時:2019/03/24 01:43

「他の人から分かりづらいと言われて」って, 具体的にどこがどう「分かりづらい」のかは聞かないんですか?



「_Name」って識別子は危険だぞって 3回目.
    • good
    • 1
この回答へのお礼

分かりづらいって言われたときに最初に言われたのが、l_って何?って言うので「これ見てローカルだと思うかな~?」見たいに言われました。(変数名も危うかったかも...)
_Nameはダメなんですかね?
この場合だと「_~Name」とか、何の名前かってことを書かないとダメな感じですかね?

お礼日時:2019/03/24 00:16

>他の人から分かりづらいと


そうですか。なら1文字目以外のところかもですね。

英語になれないとそれだけで読みづらかったりすることもあるし。

変数名を使う場と同行内のコメントに日本語漢字とかそれが許されないならローマ字で
併記しておくと少しはわかりやすくなりますが、読んだ人がどう理解するか、は見えません。
    • good
    • 1
この回答へのお礼

ありがとうございます。
とりあえず、変数名自体を見直してみます!

お礼日時:2019/03/23 21:40

>変数名です


ならNo.1に書いたとおり。
あと補足すると、会社など、「人のプログラムを読み解く時に」はそういう見やすい方法、
というは有効でもあるので、まぁオススメですね。

他人が自己流に作ったプログラなんて読み解くの大変ですから
    • good
    • 1
この回答へのお礼

そうですね、
自分も前は
メンバ変数   m_Name
ローカル変数  l_Name
引数      _Name
グローバル変数 g_Name
としていましたが、他の人から分かりづらいと言われて現在に至ります...

お礼日時:2019/03/23 21:32

>悩んでいます。

関数はキャメロケースを採用しています。
そうなの。で、質問は何?

という意地悪はさて置き

それぞれ種類が違う変数は使える場所も限られてるでしょ?
どれでも、どっちでも使えるならどっちでもいいし

デバグしてて「これなんだっけ」と引っかかるなら変数名の頭にその種類を示す1文字でも
自分流に決めてつけておけばいいし。

何を悩んでるって?
    • good
    • 1
この回答へのお礼

すみません。
変数名です
名付け忘れてしまった...

お礼日時:2019/03/23 21:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!