tmpなりtempという変数名について

こんばんは、Sugachanceです。

かふぇルネ内を検索してみても出てくるように、
みなさまは普段、temporarilyを表す変数名や関数名に
tmpやtempという文字列を
使用されていると思います。

PC系のプログラミングではなく
マイコンが絡んでくると、温度センサの情報を扱う事もあるかと思いますが
temperatureとの違いを明示的にわけたりされていますでしょうか?
・temporarilyはtmp/temperatureはtemp
・略さずにtemporarily/temperature と全部書く など…


通常の会社であれば、このあたりルール化されているのだと思いますが、
弊社の場合、直接マイコンプログラムで商売をしているような
会社ではないのできちっとしたルールがなく、
現在検討しているところです…

そもそも、temperatureをtempやtmpなどと略すのは私だけだったり??

Parents
  • Sugachanceさん こんにちは一会員です。

    遅くなりましたが、温度の変数名の付け方について返信します。

    私は幾つかのソースコードを見る機会がありましたが、

    温度を格納する変数名は
    temperature
    tmpe
    th
    などの記述を見たことがあります。

    一時的に値を格納する変数名は
    temp
    tmp
    などです。

    変数名の命名ルールを一覧表にしている組織もありましたが、これまでのソースコードの資産活用やメンテナンス、各組織の流儀などもあり、組織横断の統一の命名ルールを策定することは難しいと感じました。

    Sugachanceさん はルールを検討中とのことですが、ソースコードの可読性やメンテナンス性を挙げるのに大変役立つと思いますので頑張って下さい。

    【追伸】
    既に検討済かもしれませんが、変数名にデータ型などを表わす接頭文字を付けることも、代入やキャストの妥当性確認などで役に立つと思います。

    ハンガリアン記法が有名ですが、RL78などであれば次のようなルールも簡易で分かり易いのではないでしょうか。
    (接頭文字として符号とビット数を記述する)

    signed char → s8_・・・
    unsigned char → u8_・・・
    signed int → s16_・・・
    unsigned int → u16・・・
    signed long int → s32・・・
    unsigned long int → u32_・・・
    ・・・等々・・・

    差し出がましいとは思いましたが、ご参考まで。

Reply
  • Sugachanceさん こんにちは一会員です。

    遅くなりましたが、温度の変数名の付け方について返信します。

    私は幾つかのソースコードを見る機会がありましたが、

    温度を格納する変数名は
    temperature
    tmpe
    th
    などの記述を見たことがあります。

    一時的に値を格納する変数名は
    temp
    tmp
    などです。

    変数名の命名ルールを一覧表にしている組織もありましたが、これまでのソースコードの資産活用やメンテナンス、各組織の流儀などもあり、組織横断の統一の命名ルールを策定することは難しいと感じました。

    Sugachanceさん はルールを検討中とのことですが、ソースコードの可読性やメンテナンス性を挙げるのに大変役立つと思いますので頑張って下さい。

    【追伸】
    既に検討済かもしれませんが、変数名にデータ型などを表わす接頭文字を付けることも、代入やキャストの妥当性確認などで役に立つと思います。

    ハンガリアン記法が有名ですが、RL78などであれば次のようなルールも簡易で分かり易いのではないでしょうか。
    (接頭文字として符号とビット数を記述する)

    signed char → s8_・・・
    unsigned char → u8_・・・
    signed int → s16_・・・
    unsigned int → u16・・・
    signed long int → s32・・・
    unsigned long int → u32_・・・
    ・・・等々・・・

    差し出がましいとは思いましたが、ご参考まで。

Children
  • 一会員様、こんにちは Sugachanceです。

    ありがとうございます。
    やはり、tmp,tempと温度関係はしっかりと分けてらっしゃるケースが
    多そうですね。

    システムハンガリアンは悪ってのも通説になっていますし
    慎重に考えたいところです。
    社外に出すことはほとんどないだろうし、
    Cだと特に問題はないのかもしれませんが...

  • Sugachanceさん こんにちは一会員です。

    「システムハンガリアンは悪が通説」との情報提供ありがとうございます。
    「システムハンガリアンは悪」と言うのはマイクロソフトが「一般的な名前付け規則」(2007年)でハンガリアンを禁止したのがきっかけのようですね。
    私はPC系のプログラミングにはあまり関係してこなかったので、浦島太郎になっているようです。

    確かに、最近のルネサスエレクトロニクスのサンプルプログラムの変数の接頭文字もグローバルを意味する
    g_・・・
    だけになっているようですね。

    ただ、ルネサスエレクトロニクスのサンプルプログラムにも、次のような接頭文字を使用しているものもあります。

    g_u1_・・・
    g_u2_・・・
    g_u4_・・・
    g_s1_・・・
    g_s2_・・・
    g_s4_・・・
    (変数の有効範囲_符号バイト数_・・・)

    三相誘導モータのベクトル制御 (RL78/G14実装編) Rev.1.00 - Sample Code Back to top
    www.renesas.com/.../vector-control-three-phase-induction-motor-rl78g14-rev100-sample-code

    また、私が関係した組織の中には、接頭文字をルールとして定めているところもありました。

    近年、変数の接頭文字が省略されてきているのは、現在のIDEのテキストエディタは、変数にカーソルを合わせると型が表示されるので、演算・代入時の型の整合性チェックが容易になっていることや、チェックツールが充実してきていることもありそうですね。

    演算・代入時の不整合が起きなければ、慣れた使いやすいルールを定めるのが良いと思います。
    一般的に複雑なルールは、効率が悪く、使われなくなっていくようですから。