2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

どっち派議論スレッド PART1

1 :デフォルトの名無しさん:01/10/19 16:55
配列の添字は0〜派?、1〜派?

最近のコレクションじゃー、1から始まって
なんか分かりにくいYO!

2 :デフォルトの名無しさん:01/10/19 16:59
> 最近のコレクション

何?

3 :デフォルトの名無しさん:01/10/19 17:02
おらぁ、だんぜん1からだな。
だって、わかりやすいもん。
そもそも数字は0からって考え方がおかしいYO!

4 :デフォルトの名無しさん:01/10/19 17:02
>>2
最近は、モー娘。トレカ集めてます。

5 :デフォルトの名無しさん:01/10/19 17:03
PART2までやるのか?

6 :デフォルトの名無しさん:01/10/19 17:03
ゴ巻き派?なっち派?

7 :デフォルトの名無しさん:01/10/19 17:04
>>5
2と言わずに。

8 :デフォルトの名無しさん:01/10/19 17:04
>>3
ハァ?

9 :デフォルトの名無しさん:01/10/19 17:05
>>1
どっちでも、いいと思います。
ぼくは、C言語もできるので0からかな

10 :デフォルトの名無しさん:01/10/19 17:06
データ + アルゴリズム = パスカル

11 :デフォルトの名無しさん:01/10/19 17:07
VBプログラマ ハケーン!!
>>3

12 :デフォルトの名無しさん:01/10/19 17:09
俺は4989からカウントダウンする。それ以上の配列は却下。
参考にしてくれ。
--------------------終了--------------------

13 :デフォルトの名無しさん:01/10/19 17:11
>>12 イミワカラン
--------------------再開--------------------

14 :デフォルトの名無しさん:01/10/19 17:12
俺はなっち派。

15 :デフォルトの名無しさん:01/10/19 17:13
モー娘。ヲタは
モー娘。行け!

16 :デフォルトの名無しさん:01/10/19 17:19
俺は一味派。七味は邪道。

17 :デフォルトの名無しさん:01/10/19 17:19
じゃあ、あなたは if 〜 else 派?
それとも 三項演算子派?

この前、 三項演算子使ったらT谷に怒られた

18 :デフォルトの名無しさん:01/10/19 17:20
T谷って誰よ?

19 :デフォルトの名無しさん:01/10/19 17:20
T谷うざいよねー

20 :デフォルトの名無しさん:01/10/19 17:21
>>19
激しく同意

21 :デフォルトの名無しさん:01/10/19 17:21
T谷ってアレだから...

22 :デフォルトの名無しさん:01/10/19 17:21
17-20
自作自演

23 :デフォルトの名無しさん:01/10/19 17:22
あなたはどっちの名人派?
丸山?
高橋?

24 :デフォルトの名無しさん:01/10/19 17:23
T谷なぁ。あいつには困ったもんだ。
おれも、よく泣かされたよ。

25 :デフォルトの名無しさん:01/10/19 17:24
誰がなんと言おうと丸山派

26 :デフォルトの名無しさん:01/10/19 17:24
丸山名人って誰だ?
橋本名人なら知ってるが・・・。

27 :デフォルトの名無しさん:01/10/19 17:24
T谷ってモシカシテ○ー○の?

28 :デフォルトの名無しさん:01/10/19 17:26
あなたは目玉焼きには
ソース派?
醤油派?

29 :デフォルトの名無しさん:01/10/19 17:26

けちゃっぷ。

30 :デフォルトの名無しさん:01/10/19 17:27


31 :デフォルトの名無しさん:01/10/19 17:27
>>26
将棋の人

32 :デフォルトの名無しさん:01/10/19 17:28
>>28
これはもう、ある意味究極の質問だ。
毎朝悩んでる。時間無いのに悩んでる。
これのせいいで、いっつも電車に乗り遅れそうになる。
マジなやむよ。ホント。

33 :デフォルトの名無しさん:01/10/19 17:28
>>30
激しく同意!

つか目玉焼きにソースや醤油かけるのですか?

34 :デフォルトの名無しさん:01/10/19 17:29
>>31
将棋の人は
ハブだろがゴルァ!

35 :デフォルトの名無しさん:01/10/19 17:29
毎日、目玉やき食ってるの?
じゃぁ、交互に食えばいいじゃん

36 :デフォルトの名無しさん:01/10/19 17:30
おれ、塩コショウ

37 :デフォルトの名無しさん:01/10/19 17:30
名スレの予感

と。

38 :デフォルトの名無しさん:01/10/19 17:31
>>34
今の名人は丸山ですが?

39 :デフォルトの名無しさん:01/10/19 17:32
実家では醤油がデフォだったよ。ソースも合いそうだけど、
俺はやっぱり塩コショウだね。
焼き方はどう?お湯で蒸し焼きにするとか、ひっくり返すとか。
俺は弱火で白身だけ火を通す。黄身はほとんど生というやつ。
# だからプログラミングとなんの関係が?

40 :デフォルトの名無しさん:01/10/19 17:35
じゃあ、モノリシックカーネルとマイクロカーネル。
どっち?

41 :デフォルトの名無しさん:01/10/19 17:35
C or C++, This is a question!

42 :デフォルトの名無しさん:01/10/19 17:37
スクリプト言語とコンパイル言語

43 :デフォルトの名無しさん:01/10/19 17:36
交換可能、部分修復可能、断然マイクロカーネル。

44 :デフォルトの名無しさん:01/10/19 17:38
やばいです
結論に達してしまいました
それを言ったらこのスレ終わりやんってやつです
で、その結論ってのは

ケースバイケース

45 :デフォルトの名無しさん:01/10/19 17:39
当然、七味マヨネーズカーネル名人

46 :デフォルトの名無しさん:01/10/19 18:06

デフォとか言う人、キモチワルイ

47 :デフォルトの名無しさん:01/10/19 18:07
C#
>>41

48 :デフォルトの名無しさん:01/10/19 18:08
おら、VB派だな。VCできる人って自慢っぽくない?

49 :デフォルトの名無しさん:01/10/19 18:13
デフォの何がキモチワルイのだろ?

50 :デフォルトの名無しさん:01/10/19 18:17
char *p;(保守派)

char* p;(革新派)

51 :デフォルトの名無しさん:01/10/19 18:18
デフォルトってどういう意味?

52 :デフォルトの名無しさん:01/10/19 18:19
>>49
なんでも略しゃーいいってもんでもねーべ。

53 :デフォルトの名無しさん:01/10/19 18:20
おらぁ、保守派だなぁ。
でも参照は CString& bって書くなぁ。

54 :デフォルトの名無しさん:01/10/19 18:19
>>51
default、規定(値)、そのままにしておくとそうなる。

55 :デフォルトの名無しさん:01/10/19 18:20
>>51 なまけものってことだYO!

56 :規定(値)のななしさん:01/10/19 18:22
ふ〜ん

57 :デフォルトの名無しさん:01/10/19 18:25
じゃあじゃあ

if (a == 0) 派?
if (!a) 派?

58 :デフォルトの名無しさん:01/10/19 18:26
if( a==False ) 派。鬱だ。

59 :デフォルトの名無しさん:01/10/19 18:26
>>57
a が真偽を表す目的なら後者。

60 :デフォルトの名無しさん:01/10/19 18:27
>>57
文脈による

61 :デフォルトの名無しさん:01/10/19 18:29
オイオイ
そろそろPart2用意したほうがいいんじゃないか?

62 :デフォルトの名無しさん:01/10/19 18:29
aがBOOL なら !a かな

63 :デフォルトの名無しさん:01/10/19 18:30
>>61
もうすぐ 70 だもんな。

64 :デフォルトの名無しさん:01/10/19 18:35
while (1)
for (;;)
どっち?

俺は定数置きたくないし
中途半端に賢いコンパイラなら
前者にウォーニング出すので後者

65 :デフォルトの名無しさん:01/10/19 18:36
while (TRUE) かな

66 :デフォルトの名無しさん:01/10/19 18:36
do {

} while (0)

これ、最強。

67 :デフォルトの名無しさん:01/10/19 18:37
while (a == 0) {


}

or

if (a != 0) goto xxxx

68 :デフォルトの名無しさん:01/10/19 18:40
while (0 == 0 == 0 == 0)

これ、最強。

69 :デフォルトの名無しさん:01/10/19 18:42
a = 0; OR a ^= a;

どっち派?

70 :デフォルトの名無しさん:01/10/19 18:43
while (0 == 0 == 0 == 0 == 0 == 0)
もとさいきょ

71 :デフォルトの名無しさん:01/10/19 18:43
>>69
ウププ

72 :デフォルトの名無しさん:01/10/19 18:46
for(;'_';)
定説

73 :デフォルトの名無しさん:01/10/19 20:21
char *p, *q;(保守派)

char* p, q;(革命派)

74 :デフォルトの名無しさん:01/10/19 21:24
>>73
おいおい、意味違うじゃーねーか!

75 :デフォルトの名無しさん:01/10/19 21:25
革命的ネタだろ。sage

76 :デフォルトの名無しさん:01/10/19 21:33
しっかし革命後の方が分かりやすいよな。そうでもない?

77 :デフォルトの名無しさん:01/10/19 21:54
typedef char *pchar; (保守寄り中道派)
typedef char* pchar; (改革寄り中道派)

78 :デフォルトの名無しさん:01/10/19 22:13
char* p;(保守派寄り改革派)
char* q:

char * p;(無派閥)

79 :デフォルトの名無しさん:01/10/19 22:17
typedef char * pchar;(極中道派)

80 :デフォルトの名無しさん:01/10/19 22:20
(落選議員)
#define pchar_t char*
pchar_t p

81 :デフォルトの名無しさん:01/10/20 00:06
Continue;
配列添字の話に戻るけど、1から始まるのが自然だろ。
Σkiなんていう表記で、iを0からk-1にはしないだろ。
1からkだよ、普通。まあ、C言語の場合に0から始めた方が、
いろいろと好都合だということは解るが。

82 :デフォルトの名無しさん:01/10/20 00:10
C に限らず 0-origin のメリットはあると思うが。

83 :デフォルトの名無しさん:01/10/20 00:12
>Σkiなんていう表記で、iを0からk-1にはしないだろ。
教科書よーく見てみ

84 :デフォルトの名無しさん:01/10/20 00:18
0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,・・・
みたいな循環する数を求めたい時は0-originの方がなじむね。

85 :デフォルトの名無しさん:01/10/20 00:29
>>84
ソダネ

86 :デフォルトの名無しさん:01/10/20 00:41
>>83
教科書....ウププ

87 :デフォルトの名無しさん:01/10/20 00:50
うんこちゃん
うんこさん

さて、どっち?

88 :デフォルトの名無しさん:01/10/20 00:52
おれは、
うんち君
派。

89 :デフォルトの名無しさん:01/10/20 00:56
俺は、うんこちゃん。
うちのオカンはうんこさんって言うなぁ。鬱

90 :デフォルトの名無しさん:01/10/20 01:05
そんなことよりさぁ、ScrollLockキーって
いつ使うのさ?

91 :デフォルトの名無しさん:01/10/20 01:11
if (xxx == 1)
if (1 == xxx)

どっちな?

92 :デフォルトの名無しさん:01/10/20 01:14
xxxは1か?
1はxxxか?
と解釈すれば前者。

93 :デフォルトの名無しさん:01/10/20 01:16
xxx = 1
とタイプミスる可能性があるので
1 == xxx
だな

94 :デフォルトの名無しさん:01/10/20 01:17
93はバカ。

95 :デフォルトの名無しさん:01/10/20 01:22
>>94
つーか覚えたて厨房だろ

96 :デフォルトの名無しさん:01/10/20 01:24
えっ、常識じゃないの?

97 :デフォルトの名無しさん:01/10/20 01:26
94,95こそ真のヴァカだね

98 :デフォルトの名無しさん:01/10/20 01:26
VBとDelphiはRADとしてどっちがいいかな?
僕はRADとしてはVJ++が好き。

99 :デフォルトの名無しさん:01/10/20 01:28
>>92
同意。
>>93
タイプミス→コンパイラが警告出すよ。
そのためのコンパイル作業でもあるんだし。

100 :デフォルトの名無しさん:01/10/20 01:30
>>99
ぼくのコンパイラ警告出してくれない。。。鬱だ

101 :デフォルトの名無しさん:01/10/20 01:32
'=='でタイプミスしたこと無いんだけど?

102 :デフォルトの名無しさん:01/10/20 01:33
#define EQ ==

103 :デフォルトの名無しさん:01/10/20 01:34
102はバカ。

104 :デフォルトの名無しさん:01/10/20 01:34
漏れはよくやっちゃう。
BASIC と C がごちゃになるよ

105 :デフォルトの名無しさん:01/10/20 01:35
>>103
まじになんなYO!

106 :LISPer:01/10/20 01:36
#define eq(l, r) ((l) == (r))
if (eq(xxx, 1))

107 :sage:01/10/20 01:38
んだな、警告出す出さんはコンパイラによるな。
どうやら93より95のほうが厨房のようだな。

108 :デフォルトの名無しさん:01/10/20 01:39
>>106
オイオイ

109 :デフォルトの名無しさん:01/10/20 01:42
100ゲッチュ!!

110 :デフォルトの名無しさん:01/10/20 01:43
1よ
そろそろPART2用意したほうがいいんじゃないか?

111 :デフォルトの名無しさん:01/10/20 01:46
   | i                 //      __
   | |             //    /二つ_つ           
   | |             //   /二つ./ ) /⌒)_ ._   _ノ
   | |            // /二つ (ノ / / (__)(_)、  ノ      
   | |            // /   i     / /   Y (_)() く 1000
   | |           //  i  ノ _ノ / _ _ノ ノ    )  ゲットオ!
   | |           //  /   /  .i (  /   ∠
   | |          //  /  /    /i   ゙-、(      ヽ
   | |          //  / /∧  ./ i    i   n   ⌒ヽ'⌒    
   | |         //  / / ´Д`) /  .ヽ___ノ _ノ/-っ
   | |         //  /.    ⌒/   /二二_づー'
   | |        //  /       /  ./
   | |        //  /     /  /   //
   | |       //  /    /  /   //
   | |       //  /      /   //    
   | |      //  /    __/   //
   | |      //  /   /     //       ,,,-''
   | |     //  /   /     .//      ,,,-''
   | |     /  /  ./   //     ,,,-''
   | |    ./  /  /   //    ,,,-''
     !     _ノ ノ  .//   ,,,-''
         / / //  ,,,-'''
        ./ / // ,,,-'''         _,,,,―'''' ̄
       // // -'''    _,,,,―'''' ̄   
    _ノ⌒/ /   _,,,,―'''' ̄   
  ⊂_/      '''' _____________ 
   _人__       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      て  
      (  タンッ!  

112 :デフォルトの名無しさん:01/10/20 01:52
コピペ荒らしは禁物よ!メッ!

113 :デフォルトの名無しさん:01/10/20 02:00
本題にもどそ。

LPSTR or char*

さぁ、どっち?

114 :デフォルトの名無しさん:01/10/20 02:06
char *

115 :デフォルトの名無しさん:01/10/20 02:08
じゃあ
LPBYTE or unsigned char *

どっちだ?

116 :デフォルトの名無しさん:01/10/20 02:12
>>113
つーかLPSTRなんて使えんのはDOS/Windowsくらいだろ。
選びようがない。

117 :デフォルトの名無しさん:01/10/20 10:16
>>115
基本的には後者。
ただし、シリアライズみたくデータの長さが重要になるときは移植性を無駄に考慮してBYTEとかWORDとかDWORDとか使う。

118 :デフォルトの名無しさん:01/10/20 10:34
int8_tとかint16_tとかint32_tとかじゃないのか。
WORDという思いっきり環境依存な用語は使いたくないな。

119 :デフォルトの名無しさん:01/10/20 10:53
いやん。後ろの_tがキモチワルイ。

120 :デフォルトの名無しさん:01/10/20 12:06
大丈夫。慣れれば気持良くなるよ

121 :デフォルトの名無しさん:01/10/20 16:27
せめてこの_tにどういう意味があるのか教えてクレー。
てゆーか、int8やint16やint32が既によく使われてるから
いちいち避けたなんて……ことは……

122 :デフォルトの名無しさん:01/10/20 20:04
俺は大文字が嫌だ。読みにくい。
つーわけで、lpstr_t..lpbyte_t word_t dword_t ulong_t int16_t etc.
>>120
typedefされた型

123 :デフォルトの名無しさん:01/10/20 20:07
>>120じゃなくて>>121
typedefされた型
だけじゃなくて、obj_tとか構造体、クラスにも使う。
自分内では今の所これが一番良い銘々方法だな。

124 :デフォルトの名無しさん:01/10/20 20:18
>>122
小文字派同意。

125 :デフォルトの名無しさん:01/10/20 20:19
1〜使う奴は素人。
まあ1は牛鮭定食でも食ってなさい、つうことだ。

126 :デフォルトの名無しさん:01/10/20 20:21
125は狂牛病

127 :デフォルトの名無しさん:01/10/20 20:24
_tはsize_t、time_tなどにも使われてるから
C/C++では自然な事だよ

128 :デフォルトの名無しさん:01/10/20 21:19
クラス Foo がメソッド bar() をもってるとする。

Foo *foo = new Foo();
foo->bar();

それとも、

Foo *foo = new Foo();
(*foo).bar();

あるいは、

Foo &foo = *new Foo();
foo.bar();

どれがいい?

129 :デフォルトの名無しさん:01/10/20 21:19
>>125 はド素人。

130 :デフォルトの名無しさん:01/10/20 21:20
>>118
WORD ってのは環境依存なんか?
それを避けるためのWORDと思われ

131 :デフォルトの名無しさん:01/10/20 21:22
>>128
Foo *foo = new Foo();
foo->bar();
だろ

132 :デフォルトの名無しさん:01/10/20 21:23
だいたい朝〜昼にこんなとこ見てるやつが
どうかと思われ。
そろそろ、ひきこもり卒業したら?

133 :デフォルトの名無しさん:01/10/20 21:25
>>118
プププ
いるよね。やたらtypedefしたがるやつ。

134 :128:01/10/20 21:27
>>131
だよね。
いまチーム内にやたらとポインタやアロー演算子を嫌うやつがいてね〜。
C++なんだから参照つかえって・・・

135 :デフォルトの名無しさん:01/10/20 21:28
>>133
ふつーtypedefですが何か?
そのまま使うやつはド素人。

136 :デフォルトの名無しさん:01/10/20 21:30
>>134
話が噛み合ってないyo?

137 :デフォルトの名無しさん:01/10/20 21:31
>>134
ポインタの -> のほうが見た目カコイイ!

138 :128:01/10/20 21:32
>>136
ちょっと話題に割り込んでしまった。
空気読んでなくて、スマソ。

139 :デフォルトの名無しさん:01/10/20 21:34
>133
いるいる。意味のないtypedefの人。
>135
臨機応変って知ってる?

140 :デフォルトの名無しさん:01/10/20 21:35
>>128
気にしなくていいんでないの?べつに。

141 :デフォルトの名無しさん:01/10/20 21:39
>>139
int16/int32/int64とかは意味ありまくりだけど

142 :デフォルトの名無しさん:01/10/20 21:47
ていうか>>134のチームには
Foo &foo = *new Foo();
foo.bar();
なんてコードを常用し、あまつさえ周囲にそれを強要するやつが
実在するの?信じらんな〜い。

143 :デフォルトの名無しさん:01/10/20 21:47
MS-C
short/long/_int64

144 :デフォルトの名無しさん:01/10/20 21:49
ていうか、ていうかで始まる文章が
信じらんな〜い。

145 :デフォルトの名無しさん:01/10/20 21:50
構造体のtypedefは、キャストを多用しなけりゃならない場合につかう。

WORDやint64の場合は話が違ってくるけど、
でも、こんなのはあんまり自分で定義するもんじゃない気がする。

146 :デフォルトの名無しさん:01/10/20 21:53
ていうか int32_t を自分でtypedefするなincludeすれ。
つーか sizeof(WORD)==2の人は 8086+16bitOS使ってるんでしょうか?

147 :デフォルトの名無しさん:01/10/20 21:57
>>145
>>146
禿どう

148 :デフォルトの名無しさん:01/10/20 21:58
32でもsizeof(WORD)==2

149 :デフォルトの名無しさん:01/10/20 21:59
>>90
Excelで使ってるよ。
カーソルを移動させずにシートをスクロールできて、意外と便利。
viでいうCtrl+E, Ctrl+Yみたいな感じ。

150 :デフォルトの名無しさん:01/10/20 22:00
なんでもいいんじゃない。
わしらドキュソのとこなんて、違う処理系に移植する
仕事なんてないしー。

151 :デフォルトの名無しさん:01/10/20 22:04
>>150
いいたいことは分かるが、
その1行目はこのスレでは禁句。

152 :150:01/10/20 22:06
>>151
すまそ。みなさん熱く語ってください

153 :デフォルトの名無しさん:01/10/20 22:12
>>150
違う処理系とかじゃなくて、大昔のヤツを移植することは極まれに
存在するのでチョットは気をつけたほうがいいかも、、、
大抵、移植じゃなくて新規に書き直すこともしばしば、、、

154 :デフォルトの名無しさん:01/10/20 22:32
「ていうか」「つーか」と
「思われ」禁止!禁止禁止〜!

155 :デフォルトの名無しさん:01/10/20 22:34
「気がする」も禁止!

156 :デフォルトの名無しさん:01/10/20 22:34
「禁止」も禁止。

157 :追加:01/10/20 22:35
「いいんじゃない?」「かも?」禁止!

158 :デフォルトの名無しさん:01/10/20 22:36
>>156はメタ思考で考えると矛盾している。

159 :デフォルトの名無しさん:01/10/20 22:39
なんでやねん。
禁止とメタ禁止を区別せよ。

160 :デフォルトの名無しさん:01/10/20 22:39
「つーか」派?「ていうか」派?

161 :デフォルトの名無しさん:01/10/20 22:42
>>159
「禁止」、とquoteされてるから大丈夫って事?
(define (禁止) (禁止))
じゃなくて、
(define (禁止) '(禁止))
だから安全(w

162 :デフォルトの名無しさん:01/10/20 22:44
脳内が >>161の前者のロジックだと
永遠に制御が帰ってこないな。

163 :デフォルトの名無しさん:01/10/20 22:45
反対の賛成なのだ

164 :デフォルトの名無しさん:01/10/20 22:47
歯茎の裏の裏

165 :デフォルトの名無しさん:01/10/20 22:48
>>156はネタ志向で考えると正しいレスである。

166 :禁止mania派:01/10/20 22:53
このスレでは曖昧なレスは禁止って事にしましょう!
違反した名無しさんは裸でグランド一周!

167 :終了mania:01/10/20 23:03
制御が帰ってこなかった人多数!
よってこのスレは、
−−−−終了−−−−

168 :デフォルトの名無しさん:01/10/20 23:28
>>167 イミワカラン。
−−−−再開−−−−

169 :デフォルトの名無しさん:01/10/20 23:33
意味がわかんなかった人多数! (のべ一人)
よってこのスレは、
−−−−再開−−−−

170 :デフォルトの名無しさん:01/10/20 23:34
int8やint16やint32使わなくても、
char,short,longでええんでないの?
俺、なんか変なこと言った?

171 :デフォルトの名無しさん:01/10/20 23:35
おれ、いまだに8ビットマイコンだ。欝

172 :デフォルトの名無しさん:01/10/20 23:37
Windowsユーザのみなさん。タスクバーはどこに表示させてる?
画面の下派?
画面の右派?

173 :デフォルトの名無しさん:01/10/20 23:38
>>172
下付きにきまってんだロ!
もしもテメーが上付きだったら、コロスぞゴルァ!

174 :デフォルトの名無しさん:01/10/20 23:40
>>173 オゲフィン

175 :デフォルトの名無しさん:01/10/20 23:40
マルチモニタのまん中ですがなにか?

176 :デフォルトの名無しさん:01/10/20 23:41
>>174 シブー

177 :デフォルトの名無しさん:01/10/20 23:41
画面の右にやってるDQNがいたなぁ。
ショートカットクリックしようとするたびに邪魔になるんだな

178 :デフォルトの名無しさん:01/10/20 23:58
>>170 同意。
typedef とか define してるやつの気がしれねぇ

179 :デフォルトの名無しさん:01/10/21 00:02
取説を書くときに

「ボタンをクリックすると表示されます」
「ボタンがクリックされると表示します」

どっち派?

180 :デフォルトの名無しさん:01/10/21 00:02
ポータビリティーを必要としない、理解できない奴は
使わないでいいよ。typedef, define

181 :デフォルトの名無しさん:01/10/21 00:03
>>180
ポータビリティーってなんじゃ?オシエテクレー
sage

182 :デフォルトの名無しさん:01/10/21 00:04
移動可能

183 :デフォルトの名無しさん:01/10/21 00:05
>>180
ハイハイ

184 :デフォルトの名無しさん:01/10/21 00:07
コンピューターのひとたちって自分が偉いと思ってる人が多いけど、
どーよ

185 :デフォルトの名無しさん:01/10/21 00:09
コンピューターのひとたちって自我を持たないから
なにかを思うことはないと思うけど、
どーよ

186 :デフォルトの名無しさん:01/10/21 00:10

「-1000から1000まで表せるデータ型」が欲しいならshortやintで良い。
でも、「バイナリファイル中の32bitフィールド」を表したいとき
intやlongじゃだめだろお。int32_t(uint32_t)じゃないと。

187 :デフォルトの名無しさん:01/10/21 00:12
unsigned long でだめ?

188 :デフォルトの名無しさん:01/10/21 00:12
なんでint32_tの話でtypedefとか#defineが出てくるんだ?
ひょっとして<stdint.h>って知らないのか?

189 :デフォルトの名無しさん:01/10/21 00:12
>>185 いいこと言った

190 :デフォルトの名無しさん:01/10/21 00:13
>「-1000から1000まで表せるデータ型」が欲しいならshortやintで良い。
こんな保証はどこにもないが?

191 :デフォルトの名無しさん:01/10/21 00:13
>>188
知らねぇ。知りたくもねぇ。

192 :デフォルトの名無しさん:01/10/21 00:18
>>179
「ボタンをクリックすると表示されます」 のほうが
しっくりくるけどな

193 :デフォルトの名無しさん:01/10/21 00:19
>>188
お前かっこ悪いよ

194 :デフォルトの名無しさん:01/10/21 00:22
>>193
どこがカコワルイですか?

195 :デフォルトの名無しさん:01/10/21 00:23
今、193がいいこと言った

196 :デフォルトの名無しさん:01/10/21 00:25
ぜんぜんstdじゃね〜んだよ。ヴぉけ>stdint.h
C99から正式にサイズ明示した型
サポートしたみたいだけど遅すぎ。

197 :デフォルトの名無しさん:01/10/21 00:27
ナルホド
それはカコワルイですね

198 :デフォルトの名無しさん:01/10/21 00:41
>>190
保証あるよ。
shortもintも最低-32767〜+32767の範囲は表せることが
規格で保証されてる。

199 :デフォルトの名無しさん:01/10/21 00:42
>>196
今どきstdint.hくらい入ってない処理系なんて捨てろ

200 :デフォルトの名無しさん:01/10/21 00:47
>>198
long >= int >= short >= char の大小関係だけじゃないっけ?

201 :200:01/10/21 00:47
>>199
あふぉ?
stdintって何?
君の脳内ヘッダファイル出されてもねえ・・

202 :200:01/10/21 00:48
Σ(゚д゚lll)ガーン

203 :デフォルトの名無しさん:01/10/21 00:50
俺元祖フリーコンパイラ派

204 :デフォルトの名無しさん:01/10/21 00:50
VC6に無いけど>stdint

205 :デフォルトの名無しさん:01/10/21 00:50
>>199
同意。
今から書くのにtypedef ... int32とかしたらただの恥

206 :デフォルトの名無しさん:01/10/21 00:51
205=199

207 :デフォルトの名無しさん:01/10/21 00:52
>>204
VC6? 捨てろ。
VC7にはstdint.hあるから。

208 :デフォルトの名無しさん:01/10/21 00:53
VC7もう売ってるの?

209 :デフォルトの名無しさん:01/10/21 00:54
>>200
大小関係に加えて、最低限の範囲が保証されてます。
SHRT_MINは-32767以下、SHRT_MAXは32767以上など。

210 :デフォルトの名無しさん:01/10/21 01:01
ポータビリティの話してるときに
stdint とか言い始めるやつって…。

211 :デフォルトの名無しさん:01/10/21 01:04
>>210
禿同。

212 :デフォルトの名無しさん:01/10/21 01:05
>>210
limits.hは使ってイイデスカ?

213 :デフォルトの名無しさん:01/10/21 01:06
stdio.hハツカテイイデスカ?

214 :デフォルトの名無しさん:01/10/21 01:07
トラディショナルK&Rスタイル以外却下!
って言われたらどうしよう・・

215 :デフォルトの名無しさん:01/10/21 01:09
>>212-213
使っていいわけねえだろ。
ポータビリティの話すんなら標準へッダなんかあてにすんな!

216 :デフォルトの名無しさん:01/10/21 01:13
>>215
もしかして君はautoconf使う派?

217 :デフォルトの名無しさん:01/10/21 01:14
>>215
逆だろ(藁

>>210-211
ポータビリティってどういう意味で使ってる?
「太古の処理系でも動く」のはポータビリティと関係ないだろう。

218 :デフォルトの名無しさん:01/10/21 01:16
>>217
「太古の処理系」をどう定義するかによるな。

219 :デフォルトの名無しさん:01/10/21 01:19
>>218
なるほど。じゃあ1年ほどしてstdint.hがたいていの
処理系に入ってから使えと?

220 :デフォルトの名無しさん:01/10/21 01:20
おれはいまだにDOS時代のコンパイラ使うことがあるから、
stdintを使う事は当分無い。

221 :デフォルトの名無しさん:01/10/21 01:26
DOSでも動くか… それって制限きついね。
今から書くプログラムでもHUGEとか書かないと
「ポータブル」とは言ってくれないってこと?

222 :デフォルトの名無しさん:01/10/21 01:29
ポータビリティってなに?

223 :デフォルトの名無しさん:01/10/21 01:29
うむう。_tがどうしても気に入らん。
typedefしたいしたいしたい

224 :デフォルトの名無しさん:01/10/21 01:30
おれのにもstdintなんて入ってないや。
捨てなきゃならんのか。鬱

225 :デフォルトの名無しさん:01/10/21 01:31
>>221
それは状況による(w
基本的なコンテナなんか作るとき(つまりDOSでも使えそうな時)
には、いまだにFARとか書くかも。
WinMainから書くようなやつには使わない。

226 :デフォルトの名無しさん:01/10/21 01:32
あなたはインテル派?
それともザイログ派?

227 :デフォルトの名無しさん:01/10/21 01:34
ファームウェア書く奴以外、
ザイロク派なんているのか?

228 :デフォルトの名無しさん:01/10/21 01:34
NEC派です。

229 :デフォルトの名無しさん:01/10/21 01:36
>>227
8ビットの話かと思われ

230 :デフォルトの名無しさん:01/10/21 01:38
8ビットの話だな。
ハズー>>227

231 :<stdint.h>:01/10/21 01:39
/* ISO C9x 7.18 Integer types <stdint.h>
* Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794)
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* Contributor: Danny Smith <danny_r_smith_2001@yahoo.co.nz>
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Date: 2000-12-02
*/

232 :デフォルトの名無しさん:01/10/21 01:40
>>229
思われ禁止なのに・・・

233 :デフォルトの名無しさん:01/10/21 01:42
>>232
禁止も禁止だよ

234 :デフォルトの名無しさん:01/10/21 01:43
>>231
なにが言いたいの?
はっきりおっしゃい!おとこらしく

235 :デフォルトの名無しさん:01/10/21 01:46
231は童貞カワカムリ。

236 :デフォルトの名無しさん:01/10/21 01:47
>>231
これってどのコンパイラ用?
そのまま他へ持っていって動くもんじゃないだろう。

にしてもNOT COPYRIGHTEDってアホ丸出しだな。
それともNZっていまだに方式主義なのか?

237 :デフォルトの名無しさん:01/10/21 01:49
>>234
231は「stdint.h持ってないならこれ取ってきて使えば」と
言いたいのではないかと

238 :デフォルトの名無しさん:01/10/21 01:51
>>237
それなら、そうと言ってくれればいいのにね。

239 :デフォルトの名無しさん:01/10/21 01:51
まあ、プログラマってのは陰湿な生き物だからな。

240 :デフォルトの名無しさん:01/10/21 01:51
>>237 (続き)思われ

241 :デフォルトの名無しさん:01/10/21 01:52
>>239
自己中だし

242 :デフォルトの名無しさん:01/10/21 01:57
>>241
だから駅でエロチャットやって嫌われるのか>もれ

243 :デフォルトの名無しさん:01/10/21 02:03
>>236
いや、NZもベルヌ条約に加盟してる。
無方式で著作権は自動発生する。

244 :名無しさん@Emacs:01/10/21 02:11
> にしてもNOT COPYRIGHTEDってアホ丸出しだな。
231 じゃないですが、なんでアホ丸出しなんですか?
「NOT COPYRIGHTED」という文句が意味をなさないからですか?

> それともNZっていまだに方式主義なのか?
「COPYRIGHT を明示しなければ認めてくれない」のが方式主義だと
理解しています。「NOT COPYRIGHTED」という文句を
書くのと、その国が方式主義であることの関連が見いだせないんだけど。。

ヒマなら教えていただけると幸甚

245 :231:01/10/21 02:12
なんかひでえ言われようだな。
stdint.hはC9xなヘッダだからこんなもん
あてにするなって意味で貼ったんだよ。

>236
これはcygwinのヘッダ。
ライセンスについてはヘタにGPLにしようもんなら
カタギは誰も使わないだろうから正しい判断だと思うよ。

せっかくのpublic domainなんでアップロードしといた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/999294620_24/stdint.h

246 :デフォルトの名無しさん:01/10/21 02:14
>>223
_t は漏れも嫌い。
しかし最近やたらついてるね。size_t, ptrdiff_t, ...

始めたバカはCMUでMach書いてたやつらか?
void*がない頃、char*をcaddr_tと書きはじめやがった。

247 :デフォルトの名無しさん:01/10/21 02:16
_t は何の略なんだ。気になって眠れない。

248 :デフォルトの名無しさん:01/10/21 02:22
>>244-245

無方式主義(世界の主流)なら、何も書かなくても著作権が発生するし、
著作権(著作人格権)は放棄するなんてことはできない。
だからPublic Domainなんていうものはもう存在しない。

249 :デフォルトの名無しさん:01/10/21 02:25
PD はアメリカがベルヌ条約に加盟していない頃のものだね。
CompuServe全盛期辺りか。

250 :デフォルトの名無しさん:01/10/21 02:29
>>247

_tはtypeの略だろう。
そのうち、変数には_v、定数には_Cとか書かされる。

251 :248:01/10/21 02:32
補足:方式主義だった頃のアメリカなら
著作権は放棄できたから、PDソフトというのもあり得た。
NOT COPYRIGHTEDと言うのは、そのころなら意味をなした。

今では無意味。どころか読む方を混乱させるだけ。

252 :デフォルトの名無しさん:01/10/21 02:38
じゃああのヘッダを今風の表現で適切に書き換えてみよ

253 :デフォルトの名無しさん:01/10/21 02:42
>>251
法的に厳密な表現ではないが、
意味するのは「著作権の主張はしないよ」ってことでしょ。

254 :デフォルトの名無しさん:01/10/21 02:46
なにげに賑やかなスレだなあ。

255 :デフォルトの名無しさん:01/10/21 02:48
>>246
>しかし最近やたらついてるね。size_t, ptrdiff_t, ...
最近って程、最近か?

256 :デフォルトの名無しさん:01/10/21 02:59
>>252
・Copyrightは主張する。
・同一性保持権の侵害については何のアクションも起こさ
 ないことを宣言する(改変を許す)。
・著作財産権は放棄する。

これをちゃんと書いたら、例えばBSDライセンスみたいになる。

257 :デフォルトの名無しさん:01/10/21 03:04
>>250
ハンガリアン記法が好きな人はきっと..._tも好きなのだろう。
for (int_t iCounter_v = 0; iCounter_v < MAX_COUNTER_C; ...)
とか書くのだろう。

258 :デフォルトの名無しさん:01/10/21 03:26
>>257
_tは特に問題じゃない。型名だから。
変数名に付けてるのがウザイ!
用途を書け!

259 :デフォルトの名無しさん:01/10/21 03:36
>>250

予約語には_rを、記号には_sを付けるってのはどうだ?(defineで)

for_r lparen_s int_t i_v equal_s 0 semicolon_s i_v less_s 10 semicolon_s
i_v plus_s plus_s rparen_s

こう書くなら_tも意味はありそう。

260 :デフォルトの名無しさん:01/10/21 03:49
君な真性のアホ>259

261 :デフォルトの名無しさん:01/10/21 03:52
260が対偶知ってるなら259は真性のアホ

262 :デフォルトの名無しさん:01/10/21 16:25
ポータビリチってそんなに重要なのかにゃ。

263 :デフォルトの名無しさん:01/10/21 16:30
普通の会話でデフォルトって言う奴は逝ってよし

264 :デフォルトの名無しさん:01/10/21 16:44
>>263
堂井

265 :デフォルトの名無しさん:01/10/21 16:55
VBなんですが、
static sub Func()
Dim Flag As Boolean
Flag = Not Flag
If Flag Then

sub Func()
Static Flag As Boolean
Flag = Not Flag
If Flag Then

どっちがよいのでしょうか?先生がた

266 :デフォルトの名無しさん:01/10/21 23:47
>>262
そんなことより頼むから、まともに動くソフト作ってけろ。

267 :デフォルトの名無しさん:01/10/22 00:03
そんなことより仕事してけろ。

268 :デフォルトの名無しさん:01/10/22 00:04
こんな時間に仕事はイヤー

269 :デフォルトの名無しさん:01/10/22 11:42
void Foo(CString *szHoge) がええんかー
void Foo(CString &szHoge) がええんかー

どっち派?

270 :デフォルトの名無しさん:01/10/22 12:36
んじゃ、C++のクラスでプロパティ実装する時はどうよ?

//1.データメンバ直接操作
class Cfoo {
public:
int Member;
};

//2.メンバ関数で間接操作
class Cfoo {
protected:
int m_Member;
public:
int GetMember() {return m_Member;};
void SetMember(int n) {m_Member = n;};
};

271 :デフォルトの名無しさん:01/10/22 12:55
class Cfoo {
int FMember;
public:
int Member(){ return FMember; }
void Member(int AMember){ FMember = AMember; }
};

272 :デフォルトの名無しさん:01/10/22 13:31
稲垣メンバー

273 :デフォルトの名無しさん:01/10/22 13:36
Cで行をわけるときの書き方なんですが、
1.if( (aaa) &&
     (bbb) )
2.if( (aaa)
     && (bbb) )
どっちが正解なので?


274 :デフォルトの名無しさん:01/10/22 13:51
>>273
1.
行末の && が文が終わっていないことを明示するから。

275 :デフォルトの名無しさん:01/10/22 14:23
>>273
2.
行頭の&& が文の始まりでないことを明治するから。

276 :デフォルトの名無しさん:01/10/22 14:26
>>273
正解なんてないのよ。うんこちゃん。

277 :273:01/10/22 14:34
>274-276
早レスありがとう。結局自分の好きにしろということでよろしいんですね

278 :デフォルトの名無しさん:01/10/22 17:15

if はいいけど whileとかで && 使うなってのはどう?

バグの温床だそうだ

279 :デフォルトの名無しさん:01/10/22 17:20
>>278
なぜに?

280 :278:01/10/22 17:25
何故にと言われても困るが、
 その人の経験的にループ条件に使うと良く間違うらしい

 ループ条件に && 使うよりは
  ループの先頭で if break 使えってさ

281 :デフォルトの名無しさん:01/10/22 17:33
>>278
オントコ?

282 :デフォルトの名無しさん:01/10/22 17:34
>>280
そんなこと間違うヤツはCやめれ

283 :デフォルトの名無しさん:01/10/22 17:34
その話題今でも覚えてるよ・・・・ このスレ
http://piza.2ch.net/log/prog/kako/955/955325519.html

284 :デフォルトの名無しさん:01/10/22 17:35
>>278
多分そいつの条件文が間違ってるんだよ

285 :デフォルトの名無しさん:01/10/22 17:41
FALSE は何て読むの?
フォルス?
フェールス?

どっち派?

286 :デフォルトの名無しさん:01/10/22 17:53
if(!a && !b)
if(!(a || b))

どっち歯?

287 :デフォルトの名無しさん:01/10/22 17:56
>>285
ふぉ〜るすって言ってる

288 :デフォルトの名無しさん:01/10/22 17:58
>>286
if (a || b)

289 :デフォルトの名無しさん:01/10/22 18:00
何か勘違いしてる?

290 :デフォルトの名無しさん:01/10/22 18:15
>>285
「ファールス」だと思ってたよ。。。

291 :デフォルトの名無しさん:01/10/22 18:35
>>290
ワーニング派であれば、それなりに首尾一貫していると思える。

292 :デフォルトの名無しさん:01/10/22 18:38
>>285
フォルスだと思ってたのだが
http://dictionary.goo.ne.jp/cgi-bin/ej-more_print.cgi?MT=FALSE+&ID=EJ-109440.txt&sw=0
によればフォールスのようですな…

293 :デフォルトの名無しさん:01/10/22 18:42
>>286
if (a+b)
とやって、a が -b だったりしてバグを出す。

294 :デフォルトの名無しさん:01/10/22 18:52
>>292
defaultはデフォールトなのか!
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=default&sw=0

295 : :01/10/22 20:38
a++; と a+=2 どっち?
a++;

296 :デフォルトの名無しさん:01/10/22 20:54
a+=2

297 :デフォルトの名無しさん:01/10/22 21:46
a=a+2;

298 :デフォルトの名無しさん:01/10/22 21:48
a=a++ +1

299 :デフォルトの名無しさん:01/10/22 21:49
(*p)++ と *p += 1 とかな

300 :デフォルトの名無しさん:01/10/22 21:52
a=2

301 :デフォルトの名無しさん:01/10/22 22:29
>>298 (w

302 :デフォルトの名無しさん:01/10/22 22:37
a >> 1 派?
a / 2 派?

303 :デフォルトの名無しさん:01/10/22 22:37
じゃぁ、

#ifndef _HOGEHOGE_



#if !defined(_HOGEHOGE_)

どっち?

304 :デフォルトの名無しさん:01/10/22 22:38
#ifndef _HOGEHOGE_ 派

305 :デフォルトの名無しさん:01/10/22 23:06
#elif 使う派?使わない派?

306 :デフォルトの名無しさん:01/10/22 23:27
>>302
特に必要がないときは素直に*で書く。

307 :デフォルトの名無しさん:01/10/23 00:09
>>306
a * 0.5 ってこと?

308 :デフォルトの名無しさん:01/10/23 00:49
>>302
どうせコンパイラが最適化してくれるので
脈絡に沿ったほうを使う。

309 :デフォルトの名無しさん:01/10/23 00:49
>>305
ときとばやいによりけり

310 :デフォルトの名無しさん:01/10/23 00:52
>>308
うちのコンパイラ、最適してくれんし。
除算は関数コールするし。
8びと鬱

311 :デフォルトの名無しさん:01/10/23 01:23
>>307
 ああそうか。今の場合は/

312 :デフォルトの名無しさん:01/10/23 01:27
 あんま関係ないが、某誌の投稿プログラムで、プログラムの
初期化時に1回だけやる計算をわざわざシフト演算で置き換えてる
奴がいたな。
 さすがにアレはどうかと思った。
 

313 :デフォルトの名無しさん:01/10/23 01:48
if(a)
  if(b)
    if(c)
      ・・・   

if(!a) return;
if(!b) return;
if(!c) return;
・・・

エラー処理や後処理の有無・内容にもよるが、傾向としてどっち派?

314 :デフォルトの名無しさん:01/10/23 01:57
>>313
後者

315 :デフォルトの名無しさん:01/10/23 02:01
断然前者。
インデントが深くなるけど
1600x1200x2の画面でコーディングしてるから
全然気にならない。

316 :デフォルトの名無しさん:01/10/23 02:04
>>313

前者に決まっている、終わらせられる関数からはすぐに抜けろ

317 :ちがう:01/10/23 02:05
後者だった

318 :デフォルトの名無しさん:01/10/23 02:09
単純に比べられるのかな。
returnもbreakもしたくないとき後者は
if (!a) goto skip;
if (!b) goto skip;
if (!c) goto skip;
になっちゃうよね。

319 :デフォルトの名無しさん:01/10/23 02:21
>>313
後者->前者の書き換えを良くやるので
それだったら最初から前者

320 :デフォルトの名無しさん:01/10/23 02:53
パラメータの範囲チェックなどのバカ除けは後者。
本質な処理は前者。しかし、インデントが深くなりすぎるとき、>>318
みたいに逃げることはごくたまにある。

321 :デフォルトの名無しさん:01/10/23 03:06
どっち派議論じゃなくて常識スレッドになってる。

322 :デフォルトの名無しさん:01/10/23 03:18
>>320
さんせー

323 :デフォルトの名無しさん:01/10/23 03:52
>>321
常識とゆーか、好みの問題なんでどっち派で
よいような気がする俺は、のは、ひょっとして
非常識?

324 :デフォルトの名無しさん:01/10/23 03:58
if (!a) {}
else
if (!b) {}
else
if (!c) {}
else {
}

325 :デフォルトの名無しさん:01/10/23 03:59
インデント深いのキモイ

326 :デフォルトの名無しさん:01/10/23 07:22
おれは後者。
だって分かりやすいもん。
条件に合わなかったら即落第。
〜の条件を満たしていなければサヨウナラ
ッてかんじで、書いていて気持ち良いの。

327 :デフォルトの名無しさん:01/10/23 09:14
Pascal 的には前者しか選びようがないような・・・。

328 :デフォルトの名無しさん:01/10/23 09:28
if not a then exit;
if not b then exit;
if not c then exit;

329 :326:01/10/23 09:35
>>327
おれDelphi使いだYO!

330 :デフォルトの名無しさん:01/10/23 10:20
if (a && b && c) { }

331 :デフォルトの名無しさん:01/10/23 11:01
>>321
こんなことを常識とか
のたまうヤツは
非常識
と思われ
ます。

332 :デフォルトの名無しさん:01/10/24 17:25
>>313
主に後者で、開放とかする時はgotoでerrorに飛ばす。
if (pstr == NULL) return false;

if ((src=malloc(...)) == NULL) goto error;
error:
if (src != NULL) free(src);
みたいな。

333 :デフォルトの名無しさん:01/10/24 17:59
言いたいことはわかるが、
>if ((src=malloc(...)) == NULL) goto error;
>error:
>if (src != NULL) free(src);
はどうだろう。

if ((src=malloc(...)) == NULL) return;
でええやん

334 :332:01/10/24 18:17
>>333

説明不足だったかな。実例を1つ(独自実装が多くてすみません):
uriheader uri_new( uriheader cuh , ctchar* uri ) {
uriheader uh=NULL;

if (uri == NULL) return NULL;

if ((uh=memalloc(sizeof(*uh))) == NULL) goto error;

uriheader_init(uh);

if ((uh->uri=str_dup(uri)) == NULL) goto error;

中処理略

return uh;

error:

uri_delete(uh);

return NULL;
}

335 :デフォルトの名無しさん:01/10/24 21:05
2つで200円のおかか、
3つで240円のシーチキンマヨネーズ、

どっちにする?

336 :デフォルトの名無しさん:01/10/24 23:44
>>334

いまいち分からんのだけど、
これじゃいかんの?

uriheader uri_new( uriheader cuh , ctchar* uri )
{
  uriheader uh=NULL;

  if (uri == NULL || (uh=memalloc(sizeof(*uh))) == NULL)
    return NULL;

  uriheader_init(uh);

  if ((uh->uri=str_dup(uri)) == NULL){
    uri_delete(uh);
    return NULL;
  }

  /* 中処理略 */

  return uh;
}

337 :334, 332:01/10/25 00:07
>>336

個人的主観なのかもしれないが、ifは処理の目的、順序毎に分けたい。
(パラメータのチェック、ヘッダー領域の確保等)
また、{}があると、どの位置で関数、for、while等を抜けるか確認しないと
関数全体の流れがつかめないので、{}の使用は出来るなら避けたい。
で、>>334のようなコーティングにたどり着いた。

338 :336:01/10/25 00:13
ふーん、好みの問題か・・・
漏れは>>336のが見やすいと思うんだけどなー

339 :デフォルトの名無しさん:01/10/25 00:21
>>336
例では、エラーの時はuri_delete(uh);1行だけで一回だけれど、
数行あって、何回も呼び出されるときは面倒・凡長になるし、
エラーの時の処理を変更したいとき困る。
関数内関数があればいいんだけどね。

340 :デフォルトの名無しさん:01/10/25 00:22
>>335
おかか

341 :デフォルトの名無しさん:01/10/25 00:25
条件文が多い場合、>>334もありかなと思うけど、
やっぱ、自分ならそうすると言うことで >>336 が見やすいな。
あくなでも、好みと慣れの問題やけど。
if (ooo) xxxxxx

if (ooo) {
xxxxx
}
後者のほうがデバッグしやすいと思う。

342 :336:01/10/25 00:28
>>339
俺はそういうことなら、エラー処理は別関数にする。
何回も呼び出されるのは気にならない。そのための関数化だと思ってるし。

343 :デフォルトの名無しさん:01/10/25 00:29
>>339 こゆこと?

if (NULL == x1_new()) {
  return;
}
if (NULL == x2_new()) {
  x1_delete();
  return;
}
if (NULL == x3_new()) {
  x1_delete();
  x2_delete();
  return;
}
if (NULL == x4_new()) {
  x1_delete();
  x2_delete();
  x3_delete();
  return;
}

344 :デフォルトの名無しさん:01/10/25 00:32
>>343
どうでもいいけど
NULL == hogehoge
と書く奴は死刑と先週決まったはずだが。

345 :デフォルトの名無しさん:01/10/25 00:43
>>342
まあ普通はそうだけど、関数にするまでもないが書くのが面倒ってことない?
>>343
うん。まあ、こんな場面ならifのネストにするけどね。

346 :デフォルトの名無しさん:01/10/25 01:40
>>344
初心者なので知りませんでした。
死刑ついでに質問しますが、hogehoge って何ですか?

347 :デフォルトの名無しさん:01/10/25 01:44
なんだろ。
だれが言い出したのだろう。
出典キボン >> hogehoge

348 :デフォルトの名無しさん:01/10/25 01:47
ついでにhoge使う奴も死刑だ
foo, bar, baz使え

349 :デフォルトの名無しさん:01/10/25 01:49
http://www.selab.tutkie.tut.ac.jp/~yoshida/hoge.html
http://www.puni.net/~mimori/rfc/rfc3092.txt
これでも読んで勉強しる!

350 :デフォルトの名無しさん:01/10/25 04:10
hogeとかfoo,barとか好きになれない...派。

351 :デフォルトの名無しさん:01/10/25 04:35
tmp, tmptmp, tmptmptmp, ...

352 :350:01/10/25 05:09
>>343みたいな色のついてない名前の付け方は好感が持てる。

353 :デフォルトの名無しさん:01/10/25 09:52
やっぱpoiでしょ。

354 :337, 334, 332:01/10/25 10:26
>>342
これも個人的主観だけど、その用途だけの関数になってしまうのと、
{_uri_new_delete(uh,src);return NULL;}
とかすると、returnを入れる為に{}を使わなければならないから嫌。
return _uri_new_delete(...
とかすると、戻り値の丸投げ、つまりuri_newと_uri_deleteが並列的に
呼ばれているような気がするのと、戻り値がわからないのでもっと嫌。

すこし元ねたから外れるけど、自分はどんな時も戻り値はその関数内に書く。
例えば
bool func ( void* var ) {

    if (!func2(var)) return false;
/*func2の戻り値はbool*/

    return true;
}

355 :私はNULLが嫌いだ:01/10/25 11:13
uriheader uri_new(uriheader cuh, ctchar* uri)
{
   if(uri)
   {
      uriheader uh=memalloc(sizeof(*uh)));
      if(uh)
      {
         uriheader_init(uh);
         uh->uri=str_dup(uri);
         if(uh->uri)
         {
            中処理略
            return uh;
         }
      }
      uri_delete(uh);
   }
   return NULL;
}

自分はいっつもこう書いてる。メリットは
・正常なフローが前半に、異常なフロー・エラーリカバリが後半にきれいに分かれている。
これは例外処理と構造が類似していて理にかなっている。
・ifの条件式が肯定的で分かりやすい。
・ローカル変数のスコープがさらに限定されている。
・エラー処理が簡単に追加できる。
例えばuh->uri==NULLの場合のみ行われる処理をどこに書くかすぐに分かる。
#ところでmemalloc失敗してもuri_delete呼ぶのか?
・各処理がブロック内で完結しているので規模が大きくなったときに分割が容易。
・総じて平坦なコードと比べて試行錯誤することが少なくなる。
・何よりインデントが美しい(藁

356 :デフォルトの名無しさん:01/10/25 11:16
>>355
醜いなぁ。

357 :デフォルトの名無しさん:01/10/25 11:17
>>344
なんで死刑なんだ?おまえ、あほだろ!

358 :354, 337, 334, 332:01/10/25 11:31
>>355

私はインデントが嫌いだ
インデントしなければならないような関数はだいたい分割した方が効率的。
で、正常な処理はまっすぐ進むがベスト。
まあ、>>355はそれはそれで良いんだけどね。

>・ローカル変数のスコープがさらに限定されている。
これには激しく同意。全て冒頭で宣言するのは見通しが悪い。
{}使うときは大いに活用している。でも、
>uriheader uh=memalloc(sizeof(*uh)));
は嫌。自分は構造(struct、union,etc...)を持たない変数は
できる限り0かNULLで初期化している。

>#ところでmemalloc失敗してもuri_delete呼ぶのか?
統一するためと、もしその前に何らかの処理が追加されてもいいように。
まあ呼ばなくても今の所、実害はないが。
無論、uri_deleteはuh != NULLしている。

359 :デフォルトの名無しさん:01/10/25 11:39
>>uriheader uh=memalloc(sizeof(*uh)));
>は嫌。自分は構造(struct、union,etc...)を持たない変数は
>できる限り0かNULLで初期化している。
いみふめ。
これ何のメリットがあるの?

360 :デフォルトの名無しさん:01/10/25 11:41
>>355
その方式は一般的に書けばこうなる。
こんなの見たくないよ。

void func()
{
  if (step1()) {
    if (step2()) {
      if (step3()) {
        return SUCCESS;
      } else {
        step3_recovery();
        step2_recovery();
        step1_recovery();
      }
    } else {
      step2_recovery();
      step1_recovery();
    }
  } else {
    step1_recovery();
  }
  return FAILED;
}

361 :デフォルトの名無しさん:01/10/25 11:43
>>356 >>360
禿同。

362 :デフォルトの名無しさん:01/10/25 11:45
これもいみふめ。
まん中がsucc、最後がfailならこれでいいじゃん。
void func()
{
  if (step1()) {
    if (step2()) {
      if (step3()) {
        return SUCCESS;
      };
      step3_recovery();
     };
     step2_recovery();
    };
    step1_recovery();
  }
  return FAILED;
}

363 :358, 354, 337, 334, 332:01/10/25 11:45
>>359
すまん。それは単なる趣味。あまりメリットはないと思う。

364 :デフォルトの名無しさん:01/10/25 11:50
あんまインデント毛嫌いしてると
Java/C#なんて気持ち悪くてコード書けなくなるよ

365 :363, 358, 354, 337, 334, 332:01/10/25 11:57
>>264
言語に応じて考え変えれば、
というか現時点でJava、C#は使えないので無問題。

366 :デフォルトの名無しさん:01/10/25 11:59
>>362
>>360は一般的に書けばそうなるという話。
もちろん、すべてのstepのエラー処理が必要では無い場合もある。

が、例えばこんな処理の場合は全てのstepでエラー処理が必要。
(当然もっとうまい書き方があるが、>>355のやりかたではこうなるという例)

void func()
{
  if (open(file1)) {
    if (open(file2)) {
      if (write(file2)) {
        close(file2);
        close(file1);
        return SUCCESS;
      } else {
        log("cant write to file2");
        close(file2);
        close(file1);
      }
    } else {
      log("cant open file2");
      close(file1);
    }
  } else {
    log("cant open file1");
  }
  return FAILED;
}

367 :デフォルトの名無しさん:01/10/25 12:09
更に、こんな例も出してみる。

1. file1をオープンしてデータを読む
2. file2をオープンしてデータを読む
3. それらを表示する
という単純な処理でも、ここまでひどくなる。

void func()
{
 if (open(file1)) {
  if (str1 = read(file1)) {
   if (open(file2)) {
    if (str2 = read(file2)) {
     if (display(str1, str2) {
      return SUCCESS;
     } else {
      // エラー処理
     }
    } else {
     // エラー処理
    }
   } else {
    // エラー処理
   }
  } else {
   // エラー処理
  }
 } else {
  // エラー処理
 }
 return FAILED;
}

368 :363, 358, 354, 337, 334, 332:01/10/25 12:09
>>366

void func() {
  if (open(file1)) {
    if (open(file2)) {
      if (write(file2)) {
        close(file2);
        close(file1);
        return SUCCESS;
      }
      else log("cant write to file2");
      close(file2);
    }
    else log("cant open file2");
    close(file1);
  }
  else log("cant open file1");

  return FAILED;
}

とか

void func() {
    if (!open(file1)) {log("cant open file1");goto error;}
    if (!open(file2)) {log("cant open file2");goto error;}
    if (!write(file2)) {log("cant write to file2");goto error;}

    return SUCCESS;

error:

    close(file2)
    close(file1);

    return FAILED;
}

の方が読みやすくない?

369 :デフォルトの名無しさん:01/10/25 13:27
>>357 剥げ堂。
漏れも if のすぐあとに比較される側があったほうが
見やすいな。
if (0 > hage)
とか
if (0 == sage)
とかな。
まぁ、どっちゃでもええけど。それをアカンと決め付ける
超ド素人は死刑やな。

370 :デフォルトの名無しさん:01/10/25 13:27
>>368
うん、読みやすくする書き方はいくらでもある。あれは最悪な書き方。

ただし、>>368の前半の書き方には同意しない。
open(file2)が失敗した場合のエラー処理の流れが見づらいから。

それに、elseと処理文を同一行に書くのも感心しない(個人的嗜好)。
俺はelse blockが1行でも必ず{}で括る(個人的嗜好)。

371 :デフォルトの名無しさん:01/10/25 13:39
俺も正常処理を深いインデントの奥底まで引っ張るのは嫌い。例えば、

if (valid_params(param) {

ってのが出てきて、正常処理のコードを読む間、「異常の場合はどうなる?」という
疑問を頭に置いておかなければならない。
何度も「異常の場合はどうなる?」を脳のスタックに積んでいくと、スタックの底が
抜けたりするし。

何十(百)行か読み進んで、

} else {
return FALSE;
}

return TRUE;

とかなってたら、がっくりくる(藁

372 :デフォルトの名無しさん:01/10/25 13:42
バカかてめら。

return は 1つの関数で1個だけって習っただろうが!ヴぉけが!

それとも、そんな事も教えてもらってねぇのかぁ?

だから全部ネストするんだよ。これ常識。

373 :デフォルトの名無しさん:01/10/25 13:48
>>372
ワラタ ネタレスマンセー

374 :結論:01/10/25 14:15
めんどくさいのでC++に移行

375 :デフォルトの名無しさん:01/10/25 15:31
バカかてめ。

return は 1つの関数で1個だけなんて習ってねえだろ!ヴぉけが!

それとも、そんな事を教えられたのかぁ?

だから読みにくいプログラムが氾濫するんだよ。これ常識。

376 :デフォルトの名無しさん:01/10/25 15:47
バカかてめ。

習うってなんだよ!自分で考えろよ!

教えられないとできねーのかぁ?

だから厨房なんだよ。これ常識

377 :デフォルトの名無しさん:01/10/25 15:54
バカかてめ。

じゃぁ、プログラム言語ってお前が考えたのかよ!

本で読んだとかは、習うにはいらねーのかぁ?

だからプログラマーは自己中なんだよ。これ常識。

378 :デフォルトの名無しさん:01/10/25 16:04
>>372
それ提唱したの誰だっけ?
ダイクストラ?

379 :デフォルトの名無しさん:01/10/25 16:30
Pascal は procedure や function の途中で抜けられないと思った。

380 :デフォルトの名無しさん:01/10/25 18:17
hoge

381 :デフォルトの名無しさん:01/10/25 18:28
カレーのゴハンは右派?左派?

382 :Delphi:01/10/25 18:49
>>379
昔はね。今は Exit で抜けられるよ。

383 :デフォルトの名無しさん:01/10/25 22:03
>>340
ナイスおかか

リターンが一つって、俺独学だから習ってないけど、
やっぱ、危険だから?メモリロケート後の開放が危険にさらされるの?つーこと?

俺、全部.txt形式のままコンパイルしてたから、どうやらC(NOT++)を
やってたみたいなんだ。だからいまだnewなんて使ったことない。

グローバルロックの方がmallocより偉いと思ってたけど、勘違いだって
ここで知ったョ・・・・

384 :デフォルトの名無しさん:01/10/25 22:18
>>383
>やっぱ、危険だから?メモリロケート後の開放が危険にさらされるの?つーこと?

いや、○○がきちんと出来ていれば、関数の出口は一つになるはずであり、
複数あるのは○○が出来てない証拠、みたいなかんじだったような記憶が。

ただ、肝心の○○にあてはまる言葉を忘れちゃったんだよね(鬱
構造化だったかな?

385 :デフォルトの名無しさん:01/10/26 00:12
○○にあてはまる言葉って確かアレだったよな。

386 :デフォルトの名無しさん:01/10/26 00:21
この板のことを
「プログラムいた」と言う派?
「プログラムばん」と言う派?
わしゃー、ばん派やね。

387 :デフォルトの名無しさん:01/10/26 00:24
ばん

388 :半分愚痴:01/10/26 00:27
ライブラリを作る時、内部でしか呼ばれない関数は "_" (アンダースコア)から始めるのって常識?
こないだから仕事で引き継いだコードがこれ多用していて見づらいYO!

_foo_bar() と __foo_bar()の違いに2時間気づかんかった・・・。

389 :デフォルトの名無しさん:01/10/26 00:29
2chでは「いた」と言うらしい・・

390 :336:01/10/26 00:42
>>371
同意。
ネストがかさむとif節の{}のブロックが1画面に収まらなくなりがちだから
余計そうなんだよね。else節が続いたりすると最悪。

>>383
returnの数とメモリリークは関係ない。
それより「全部txt形式のままコンパイル」ってなんだ?


>>384
関数にreturnは1つとかこだわる人って、breakやcontinueは使うのだろうか?
だいたい、longjumpでもしない限りはreturnいくつあっても、関数の出口は
ひとつじゃん。

391 :デフォルトの名無しさん:01/10/26 00:51
ここはOO落ちこぼれスレですか?

392 :336:01/10/26 01:32
>>367は、こうなるね。

int func()
{
  int err;
  char *str1,*str2;
  if (err = open(file1))
    return err;

  if (err = open(file2)){
    close(file2);
    return err;
  }

  if (!(str1 = read(file1)) || !(str2 = read(file2))) {
   closeall();
   return FAILED
  }

  if(err = display(str1, str2))
   err_handle(err);
  }

  closeall();
  return err;
}

いままでの流れからすると、332には気にいらないコードだろうけど、
やっぱ自分はこうなるな〜。

393 :デフォルトの名無しさん:01/10/26 04:40
>>388
_で始まる名前は処理系のために全部予約されてる。
使うべからず。

394 :デフォルトの名無しさん:01/10/26 11:28
>>391
そう。みんな○○だからな。

395 :デフォルトの名無しさん:01/10/26 12:25
○○=「現場では役立たず」

字余り。

396 :デフォルトの名無しさん:01/10/26 13:58
goto 使うやつは行ってよし!
goto 使うなって習わなかったけ?

397 :368, 363, 358, 354, 337, 334, 332:01/10/26 14:53
結局のところ、趣向の問題だな。
でも>>392よ、
>  if (err = open(file2)){
>    close(file2);
は、close(file1)の間違いだろ?
こういうことがあるから、error:にまとめるのさ。

398 :397, 368, 363, 358, 354, 337, 334, 332:01/10/26 14:59
>>396
「人間の考えたことに絶対は存在しない。
gotoはうまく使えばより良いコードを書ける。
本当に逝ってよしなのはgotoを使いこなせない奴と、
何が何でもgoto使うな!って奴。」
ということで統一して頂けると幸いです。

399 :デフォルトの名無しさん:01/10/26 15:57
goto なんて制御命令あったっけ?

400 :デフォルトの名無しさん:01/10/26 16:01
gotoネタに便乗して…
検索ループと、見つかったとき見つからなかったときのそれぞれの処理、
どう書く?

401 :デフォルトの名無しさん:01/10/26 17:06
>>400
for(int i=0;i<10;i++){
if(判定){
見つかったときの処理
return;
}
}
見つからなかったときの処理

402 :デフォルトの名無しさん:01/10/26 17:23
for(int i=0;i<10 || (判定);i++){
}
return i < 10 ? 見つかったときの処理 : 見つからなかったときの処理


403 :デフォルトの名無しさん:01/10/26 17:48
for (i = 0; i < MAX; i++) {
  // 判定
}
if (i == MAX) {
  return NOT_FOUND;
}
//見つかったときの処理

404 :デフォルトの名無しさん:01/10/26 18:03
漏れは401が良さげかなぁ。。

405 :336==392:01/10/26 20:14
>>392
ほら、バグがすぐ見つかったじゃん。
・・・スマソ(藁

406 :デフォルトの名無しさん:01/10/26 20:19
OOAしてOOPで367を見やすくしてみてよ。

72 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)