トップページ⇒tech
51コメント13KB

変数の名前ってどうしてる?

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
やっぱハンガリー記法がいいと思うんだが・・・

0002名無しさん@お腹いっぱい。NGNG
思いません。
0003名無しさん@お腹いっぱい。NGNG
--------------------放置プレイ開始--------------------
0004名無しさん@お腹いっぱい。NGNG
マルチポストうぜぇ (´人`)
0005名無しさん@お腹いっぱい。NGNG
男だったら美少女アニメキャラの名前を使う。
0006名無しさん@お腹いっぱい。NGNG

あげんなボケ!
00071NGNG
あげるなというとあげたくなるのねん。
0008jokeNGNG
LANGをCにしてdateを使います。
例えばこんなのが出てくる。

Tue Oct 31 02:42:41 JST 2000
これを
Tue_Oct_32_02_42_41_JST_2000
として使います。
重複した場合_1@`_2と後ろにつけます。
0009名無しさん@お腹いっぱい。NGNG
>7
あげるなというとあげたくなるのねん。
じゃあイキロ!
どうだ?氏にたくなったか?(笑
0010観客NGNG
>9
つまらん
小学生か?
0011名無しさん@お腹いっぱい。NGNG
同上。
0012名無しさん@お腹いっぱい。NGNG
形状を模倣するなら「氏ぬな」といってほしかった。
0013名無しさん@お腹いっぱい。NGNG
「だって、そうしろって言われたんだもん」
「じゃぁ、氏ねって言われたらしーぬーんだなぁ???」
0014名無しさん@お腹いっぱい。NGNG
ああ、氏ぬよ。いいんだな…
0015名無しさん@お腹いっぱい。NGNG
ハンガリーが出てくると荒れるな。
けんか腰の奴が多いのか。
バカばっかりだな。
0016名無しさん@お腹いっぱい。NGNG
>>15
>バカばっかりだな。
オマエモナー
0017名無しさん@お腹いっぱい。NGNG
お約束ありがとう(藁
0018お約束NGNG
腐れハンガリアンはハンドル名の先頭にh付ける事。
0019名無しさん@お腹いっぱい。NGNG
今仕事で移植しているプログラムの変数名は、日本語を
ローマ字にした子音のみで形成されている。

始点=STN
終点=SYTN
斜め=NNM
検索=KNSK

泣きそう。最近慣れてきたのが怖い。
0020名無しさん@お腹いっぱい。NGNG
俺は
画面=gmn
長さ=ngs
ってのをみたことあるよ。
0021名無しさん@お腹いっぱい。NGNG
class MyClass {
public int 長さ;

int get長さ() {
return 長さ;
}
}

こう書いても Java だからコンパイルエラーは出ない・・・
0022デフォルトの名無しさんNGNG
class sugoine;
class imomushi;
class esa;
class dose;
class sore;
class haihai;
class raishu;
class tadaima;
class kimochi;
0023デフォルトの名無しさんNGNG
type
 Omaemona = class(Itteyoshi)
 
 end;
0024デフォルトの名無しさんNGNG
class CHito;

class CFugutake
{
public:
    CHito masuo;
    CHito tarao;
    CHito sazae;
};

class CIsonoke
{
public:
    CHito namihe;
    CHito fune;
    CHito katsuo;
    CHito wakame;
    CFugutake fugudake;
};
0025デフォルトの名無しさんNGNG
クラスの定義のとき、先頭に C をつけるか、T をつけるか悩みませんか。
Borland 教信者は後者かと。
自分はMFCで書いてた頃、MFCのクラスと分けるためにU(User)ってつけてた。
0026デフォルトの名無しさんNGNG
class C2channel
{
public:
    C2channel();
    ~C2channel();

public:
    void say_itteyoshi();
    void say_omaemona();
    void say_shine();
    void say_dokyusohakken();

protected:
    enum sure
    {
        CHUBO@` NEKAMA@` HENTAI@` BAKA
    };
};
0027デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

class C2channel
{
public:
  char* message()
  {
    int i = rand() % 4;
    switch(i)
    {
    case 0: sprintf(pMessage@` "逝ってよし"); return pMessage;
    case 1: sprintf(pMessage@` "オマエモナー"); return pMessage;
    case 2: sprintf(pMessage@` "氏ね"); return pMessage;
    case 3: sprintf(pMessage@` "ドキュソ発見!"); return pMessage;
    default: return NULL;
    }
  }
  char* name()
  {
    int i = rand() % 4;
    switch(i)
    {
    case 0: sprintf(pName@` "[厨房]"); return pName;
    case 1: sprintf(pName@` "[バカ]"); return pName;
    case 2: sprintf(pName@` "[ネカマ]"); return pName;
    case 3: sprintf(pName@` "[変態]"); return pName;
    default: return NULL;
    }
  }
protected:
  char pName[256];
  char pMessage[256];
};

int main(int argc@` char* argv[])
{
  srand(time(NULL));
  C2channel obj;

  for(int i = 0; i < 20; i++)
  {
    printf("%10s : %s\n"@` obj.name()@` obj.message());
  }
  return 0;
}
//------------------------------

$ ./2chan
 [ネカマ] : オマエモナー
  [変態] : 氏ね
 [ネカマ] : 氏ね
  [バカ] : オマエモナー
  [バカ] : ドキュソ発見!
  [変態] : ドキュソ発見!
  [バカ] : 逝ってよし
  [変態] : オマエモナー
  [厨房] : オマエモナー
  [変態] : オマエモナー
  [厨房] : 逝ってよし
  [厨房] : 氏ね
  [変態] : ドキュソ発見!
  [バカ] : オマエモナー
 [ネカマ] : オマエモナー
  [厨房] : 逝ってよし
 [ネカマ] : オマエモナー
  [厨房] : 逝ってよし
  [変態] : 逝ってよし
  [厨房] : 逝ってよし
0028デフォルトの名無しさんNGNG
ハンガリー舞曲の方がいい。
0029デフォルトの名無しさんNGNG
>クラスの定義のとき、先頭に C をつけるか、T をつけるか悩みませんか。

悩みません。
んなもん付けないから。
0030aaNGNG
aaaa
0031デフォルトの名無しさんNGNG
とうとうMSからも見放されたハンガリア〜ン。
0032デフォルトの名無しさんNGNG
ハンガリアンを使うのはC++のように同じ型(例えば文字列)
でもいろいろな現し方があるときには便利でしょう。

たとえば、C++でmynameのようなシンボルがあったとき
これがポインタなのか配列なのか、それともクラスなの
かが分かったほうが便利です。
pMyname@` szMyname@` strMynameのように。

javaやC#では文字列を現す型は1つしかない(よね?)ので
ハンガリアンにする意味は薄いと思います。
0033老人ZNGNG
クラス名の先頭文字をCやTにするのはライブラリで使用する
クラス名とユーザーが定義するクラス名との衝突を避けるため。
だからライブラリの命名規則を真似るのは愚かなことじゃ。
精進が足らんのお
0034デフォルトの名無しさんNGNG
<正論>
namespaceつかえよ。
0035デフォルトの名無しさんNGNG
>>33
そーでもないぞ。
例えユーザーレベルでも
IDEが、先頭Tではじまるコードを自動生成してくれたりする。
0036しかしNGNG
namespace がまともに使える環境は少ない。
0037デフォルトの名無しさんNGNG
>36 まともに使えない環境って何よ?
0038老人ZNGNG
それは「自動」生成だから....正しいのじゃ!!!(きっぱり)
0039デフォルトの名無しさんNGNG
>>36
いつの時代の話なんだ。
0040何よって?NGNG
g++なら2.8以前、VC++5でも限定サポートのはず。VC++6は知らん。
まだnamespaceを本格的に使う気になれない。そもそも使いにくい。
0041デフォルトの名無しさんNGNG
>>40
好き好んで古いバージョン使ってるだけじゃん。
知らんわそんなの。
0042>41NGNG
別に好きで使ってるわけじゃないけどな。
例えば gcc2.9x では purify でサポートされないとかね。
0043奥さん、名無しですNGNG
C@`Tのプレフィックスは衝突する可能性が高い
ライブラリのバージョンが上がって衝突したこともあるし
ネットに落ちているソースコードともぶつかる。

以後、プレフィックスはプロジェクト名の略称
もしくは自作ライブラリの略称
0044デフォルトの名無しさんNGNG
>たとえば、C++でmynameのようなシンボルがあったとき
>これがポインタなのか配列なのか、それともクラスなの
>かが分かったほうが便利です。

おれは、こういう人が不思議でならん。
一度にそんなに沢山の名前を意識内で
保持せねばならん書き方ばかりしてるわけか?
0045デフォルトの名無しさんNGNG
>>44
意識しなければならないのは最初のうちだけですね。
すぐになれてしまいますです。
0046デフォルトの名無しさんNGNG

> 一度にそんなに沢山の名前を意識内で
> 保持せねばならん書き方ばかりしてるわけか?

数十人以上の、規模大きめのプロジェクトに関わったら分かるよ。
プロジェクトの期間が長いと、人が入れ替わって
ソースの引継することも結構あるし、
モジュール担当者毎にまるで違う名前付けされたらたまらん。

ある程度一貫性のある命名規約しているかどうかで
引き継ぐ側の苦労が天地の差になるんだよね。
(「後のことなんてどうでもいい」という奴は逝ってよし)
0047デフォルトの名無しさんNGNG
>>46

そういうプロジェクトでの名前付け規約と、
マイクロソフト流の、型を示すあほらしい接頭辞とを
ごっちゃにしとるの?

0048奥さん、名無しですNGNG
> 46
普通、ローカル以外はほとんどクラス、オブジェクトだろ
ハンガリ庵で識別できる名前なんて全体の半分もないよ
0049デフォルトの名無しさんNGNG
結局どうすればいいのだ!
0050結論NGNG
腐れハンガリアンは逝ってよし
0051デフォルトの名無しさんNGNG
.NETのヘルプを見たところ、
.NET Framework Design Guidelinesの随所に
「Do not use Hungarian notation」
(ハンガリアン記法使うなおんどりゃあああッ!(意訳))
とありますね。

いやあ、これで世の中平和になるでしょう。
Cとかのプリフィックスも駄目みたい。
■ このスレッドは過去ログ倉庫に格納されています