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

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

この会社辞めようと思ったソースコード #7

1 :よっこいしょ:02/11/09 03:18
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
COBOL ライクなソースコード。(゚д゚)マズー
をつらつらと綴っていって頂戴。

質問する前に Web で検索してね。
あと、丸投げ/宿題おとこわり。

■過去スレ
この会社辞めようと思ったソースコード
#1http://mentai.2ch.net/prog/kako/997/997104873.html
#2http://pc.2ch.net/prog/kako/1001/10010/1001076034.html
#3http://pc.2ch.net/prog/kako/1015/10158/1015861447.html
#4http://pc.2ch.net/test/read.cgi/prog/1021560641/
#5http://pc.2ch.net/test/read.cgi/prog/1029120005/
#6http://pc.2ch.net/test/read.cgi/prog/1033317733/

■関連スレ
この会社辞めようと思った上司の一言
#1http://mentai.2ch.net/prog/kako/992/992259973.html
#2http://pc.2ch.net/prog/kako/1003/10034/1003497181.html
#3http://pc.2ch.net/test/read.cgi/prog/1024763650/
#4http://pc.2ch.net/test/read.cgi/prog/1034469344/
この会社を辞めよーかなーなんて思った上司の一言
#5http://pc.2ch.net/test/read.cgi/prog/1036592708/


2 :リアル厨房:02/11/09 03:19
C言語でgoto文を多用してますが、何か?
ポインタの代わりに配列を多用してますが、何か?

3 :仕様書無しさん:02/11/09 03:20
>>1
>>2 逝ってよし

4 :リアル厨房:02/11/09 03:21
コメント文にAAカキコして
「モナー」をよく書きますが、何か?

5 :仕様書無しさん:02/11/09 03:22
>>4 逝ってよし
>>5 逝ってよし

6 :前スレの981:02/11/09 03:23
地雷気づいて、立てようと思ったら、すでにたってた。
おつかれ >>1

>> int div(int a,int b){ return a / b;}
>戻り値の取りうる値がすべて正常値の関数は普通、絶対にエラーが無いか、書かない。
じゃあ、この割り算関数どうするの?
文字列返す関数とかも、結構困る

絶対エラーがないって、どんな証明?

7 :リアル厨房:02/11/09 03:24
DQN PGは、コメントを英文で書くと文句言ってくる。
そんな奴等、逝ってよし。

8 :6:02/11/09 03:24
>絶対エラーがないって、どんな証明?
ちょっと勘違いしてた。寝る。

9 :仕様書無しさん:02/11/09 03:34
>>8
漏れも言いまわしが悪かったかもね。
「戻り値の取りうる値がすべて正常値の関数は、絶対にエラーが無いものでなけれれば書かない」

この例でどうしてもエラートラップしたい場合は、ERRNO を使うか、結果を格納する変数への
ポインタをもう一つの引数として渡して、戻り値は成功か失敗かを表すエラーコードにする。
関数の呼び出しをそのまま式の中で使いたい場合は、工夫が要るけどね。

10 :仕様書無しさん:02/11/09 03:36
>>8
気持ちもわからないでもないけど、もしそのソースを目にする大多数が日本人なら、
日本語以外でコメント書く方が DQN だと思うけど。
コメントって、読んで欲しいから書くんでしょ。

11 :9:02/11/09 03:39
> 関数の呼び出しをそのまま式の中で使いたい場合は、工夫が要るけどね。

式の評価が全部終わった後に errno のチェックでいいか。
どうせその式はおじゃんになるんだし。

12 :仕様書無しさん:02/11/09 04:23
。 前スレの 1000 滅茶苦茶怖ぇーよー!!
。   ∧_∧。゚
 ゚  (゚ ´Д`゚ )っ゚
  (つ   /  アァァァァ
    |  (⌒)
   し⌒^

http://pc.2ch.net/test/read.cgi/prog/1033317733/1000

13 :仕様書無しさん:02/11/09 04:33
うーん déjà vu
どっかで見た光景

14 :!7:02/11/09 11:43
>>10
英語ができないヤシハケーン。

15 :仕様書無しさん:02/11/09 12:12
おれも10に賛成
ゲームとか海外移植の可能性があるものとか
開発チーム、納品先に英語圏の人がいるならわかるけど。

コメントをいれる目的って点で考えたら10はまともな感覚だよ。
14はコメントで自己主張でもしたいのか?
(まっ、俺は愚痴とか入れちゃうDQNだけどね)

16 :仕様書無しさん:02/11/09 12:21
>>14は国内で販売する日本語版のアプリの操作マニュアルや販促資料も
英語で作るヴァカです。
相手にしないように。

17 :仕様書無しさん:02/11/09 13:28
情報システム部に所属しているんですが
社内向けの情報システムって動けばいいって感じのものばかりです。
1.クーロンからシェルプログラムが呼ばれる
2.シェルプログラムからプログラムが呼ばれる。
3.プログラムからシェルプログラムが呼ばれる。
4.シェルプログラムからプログラムが呼ばれる。
5.VisualTestのレコーダファイルでファイル転送

なんじゃこりゃ。

18 :仕様書無しさん:02/11/09 13:51
>>11
> 「戻り値の取りうる値がすべて正常値の関数は、絶対にエラーが無いものでなけれれば書かない」
ということはその関数内でエラーを返す関数は使用できないね。
それからエラーが発生するもので戻り値にエラーを割り当てるとエラーコードの管理が大変になるね。
単純に「関数内のどこかで何かがエラーになりました」ってだけを通知するなら簡単だけど。

> 式の評価が全部終わった後に errno のチェックでいいか。
良くない。式が副作用を持つ場合問題が起こる。

ちなみに例外があればこれらの問題はすっきり解決するわけだが。
エラーをエラーコードとして戻り値で返すのはやめたほうが良い。

19 :仕様書無しさん:02/11/09 17:23
> 直ちに適切なエラーコードを return すればいいだけだ。
> それとも、戻り値をチェックするのに不満があるのか?

そのエラーコードを返す関数が自分のすぐ子だったらいいけど、
はるか階層の下の方でエラーが返ってきて、それをハンドリングする
ルーティンがずっと上層だったら、エラーコードを上まで戻すために
return だらけになって、ソースがボロボロにならないかい?


20 :仕様書無しさん:02/11/09 18:18
COBOLみたいなVB
COBOLみたいなC++

郷に従わないソースコードを扱ったときが一番辛かった。

うちの会社には「ソフトウェア開発総則」というものが存在して
これが何年も変わらず使われ続けているものだから
もう腐ったものしか産み出されない。


21 :仕様書無しさん:02/11/09 18:27
COBOLみたいなJava
COBOLみたいなSmalltalk

ワケワカラン。

22 :仕様書無しさん:02/11/09 18:40
戻り値の話まだやってんのかよ

プロジェクトに一人はいるよなぁ
どっちでもいいことにやたらこだわってるやつ
どっちがいいのか議論するのはいいんだけど
結論を先延ばしされると工期がね・・・

と思いまちた

23 :仕様書無しさん:02/11/09 18:49
>22
まったくだ。
あと途中参加の人間がそういうどっちでもいい問題で、
既に決まってる方針を壊してまで自己流でやろうとする。

統一感の無いコーディングじゃメンテも大変だろ。


24 :仕様書無しさん:02/11/09 19:01
マジで切れそうになったのは、(Javaね)
   インデントがぐちゃぐちゃなソース
   うざいコメント

   if(なんちゃら){
     …
   }// if(なんちゃら)

#複雑なJSPの中ならありがたいんだが、普通のソースで書くなぁ。   

25 :仕様書無しさん:02/11/09 19:02
>>19
確かにreturnだらけになるけど、例外が無い言語なら、エラーが
出るたびにgoto,returnするしか無いよね。
極端な話、returnの数がエラー処理の厳密さのバロメータともいえる。
>>22
エラー処理は「どっちでもいいこと」ではないだろう。
そりゃ、「すぐ上で処理されるエラーを何を使って返すか」だったら
どうでもいいけど、すぐに処理できないエラーをどう扱うかは、
本来の処理以上に重要なことだと思う。

26 :仕様書無しさん:02/11/09 19:11
>>24
インデントぐらい変換ツールでちゃんとなるだろ。
コメントなんて役に立たないやつは無視すればいい。
なにに怒っているんだ?

27 :仕様書無しさん:02/11/09 19:12
プロジェクトで一番いやな奴は、重要なことをどうでもいい事と勘違いして
何も考えてないで行き当たりばったりで処理する奴。
コーディングも行き当たりばったりで作ったりな。
今までよりも良い方法の提案を今までこれでやってきたからと無視したり。

28 :仕様書無しさん:02/11/09 19:20
ソースの綺麗汚いなんてどうでもいいことだろ。
おまいらコーディング以外やったことないのか?

29 :仕様書無しさん:02/11/09 19:22
実装フェーズの馬鹿は、どうにか回避する方法もあるけど、
設計フェーズ、企画フェーズの馬鹿はどうにもならん。
そんなモン今更作ってどうすんの?という仕様が降りてく
ると萎える。脳内天国に篭ってないで、すこしは社会の
現状理解してよ。

30 :仕様書無しさん:02/11/09 19:22
>28
汚いソースの弊害はあるだろうにどうでもいい?
それとも汚いソースの弊害が本当にわからない?

どっちにしてもそうやって問題点をすりかえるやつ、
現場ではかかわりたくない人種の一人だね。

31 :仕様書無しさん:02/11/09 19:24
>>28
だれがソースが綺麗か汚いかの話をしている?
単純でバグが発生しにくくメンテナンスもしやすいソースを作るのは重要だろ。

32 :仕様書無しさん:02/11/09 19:26
コーディング以外。そういや設計でも単純にできることをやたら複雑にする奴もいるな。
あと話が複雑で長ったらしくて意味がわかりにくい奴とか一緒に仕事したくない。

33 :仕様書無しさん:02/11/09 19:37
>>32
その人の脳内でのみ常用している数個の単語を並べて
説明がすんだ気になっている馬鹿よりは、きっちり説明
してくれる方がましかと・・・
それができるのは、単語とそれが示す概念が打ち合わせ
の参加者全員についてきちんとリンクしている場合だけ。

34 :仕様書無しさん:02/11/09 19:50
>>33
そりゃ、そんな馬鹿よりもきっちり説明してくれる方がましだろうね。
そして、きっちり説明、それでいて簡潔にわかりやすい説明ができる奴が一番良い。

35 :仕様書無しさん:02/11/09 19:56
まぁまぁ、みんなまた〜りしようよ(´ー`)y-~~

36 :仕様書無しさん:02/11/09 19:56
コードみりゃわかるじゃんってやつも困ったチャン。
できる人だし、自分はそうやってできるようになったんだろうけど、、、
今の新人君たちはそれでは育たないのよ。

給料も人並みだから、あんま厳しいことゆうとやめちゃうし。
甘いのはわかってる。でも人が育たないとしたらその会社も問題だし。

37 :仕様書無しさん:02/11/09 21:29
ソースファイルにコメントで日記
氏ね

38 :仕様書無しさん:02/11/09 22:36
28=32 は、「このスレにおいて」 ソースの綺麗汚いなんてどうでもいい、なんて言うのか?
場の雰囲気読めず馴染めない DQN ケテーイ

39 :30:02/11/09 23:59
>38
えっ、おれも?

40 :仕様書無しさん:02/11/10 00:12
>>39
イコールとハイフンを区別してくれ。プログラマらしくも無い。

41 :仕様書無しさん:02/11/10 00:13
>>39
2ちゃん言語のソースも読めねーのかよ
28-32だったら30も含まれるが
28=32の場合は28と32限定だろ

42 :仕様書無しさん:02/11/10 00:14
うっ!かぶった

43 :39:02/11/10 00:15
わるかったよぉ、
ちょっとよぱらってるからみまちがえたんだよぉ(TT)

44 :仕様書無しさん:02/11/10 00:19
プロならまともなコード書かないとね。

45 :リアル厨房:02/11/10 00:21
コーディングの汚さを屁とも思わないPGは
SEに昇格する資格あり!
卑屈になる必要無いさ。細かい事にうるせー
先輩PGをこき使ってやれ。

俺、自分の書いたDQN仕様書(自分で言うんだから相当な代物!)が原因で
外注PGを数人システム障害真っ只中の原子炉へ送り込んでしまいました。
本当は俺にも非があるんだけど、美味い事言って自分は行かずに済みました。

3ヶ月半に及ぶデスマーチの結果、5人の内2人が倒れて、結局4人も辞めて
しまった。帰って来た時には「随分やつれたねー」と声かけたら
「後任者の○×と言う者です。よろしくお願いします」と来た。

PG達にはいつも済まないと思いつつ、自分だけは早く帰りたいので
仕様書の誤字脱字は気にしない。
仕方ないんだ。楽する為にその大半をVBAマクロで書いているんだから、
文章の内容まで一々読んでる訳無いでしょう。
あ、そのVBAも後輩に休日使って作らせたんだ。

だって、俺、Programまるで組めないんだもん。
原発でデスマーチしてたPG共が聞いたら、襲撃されるかもしれないな。

46 :仕様書無しさん:02/11/10 00:25
>>43
素直で善し!!

>>44
その「まとも」が千差万別だからこその
このスレでは。

で、俺はというと
「一関数一ファイル、Makeは信用できないからオブジェクトファイル
を消して必ず全コンパイル」ちうプロジェクト
(ファイル数は5ケタを越えている)にて毎日4時間くらいコンパイルに
費やす日々を送っております。


47 :仕様書無しさん:02/11/10 00:27
>45
まぁ、せいぜい30前後の若造ってかんじだが、
それでいつまでもうまくいくわけねぇだろ。
DQNはいつか切られるよ。
このご時世、DQNにいつまでもただめし食わせてるのんきな
会社はそうはないからな。

48 :リアル厨房:02/11/10 00:28
>ファイル数は5ケタを越えている

うわーーーお!
デスマーチな香りがプンプン匂う。

49 :仕様書無しさん:02/11/10 00:41
リアル厨房ウザ。

50 :仕様書無しさん:02/11/10 00:46
>>49
いいこと言った

51 :リアル厨房:02/11/10 00:50
お、30前後まで昇格させてくれて感謝!
今夜は少しオ・ト・ナになった気分。

だって、俺育ててくれたのは'93年入社の
バブル世代なので、それはそれは大切に
育てられました。

俺みたいのばっか、この会社。
俺みたいな自称「脳内SE」の元に送り込まれて来るPG達には
同情と感謝の気持ちで一杯だ。会社もコスト節減の為に、
比較的人件費の安い層をSEにしちゃうんだよね。

52 :リアル厨房:02/11/10 00:54
仕方ない。本名名乗るか。
バス板に住んでる「八千代市民」っす。
自称「脳内バサー」兼「脳内ラリードライバ」兼「脳内SE」っす。
3つの才能に恵まれた幸運な男ッス。

顔は少しチャウチャウ似で、女性からはモテないんだなー。

53 :仕様書無しさん:02/11/10 01:03
Makeは信用できないから、という理由付けがテイスティだ

54 :仕様書無しさん:02/11/10 02:13
あぁん?VBは28=32でいいんだよ

とか言ってみるテスト

55 :仕様書無しさん:02/11/10 02:43
>>54
どういう意味で言ったのか解説してくれないか?
ネタにしてもさっぱりわからん。

56 :仕様書無しさん:02/11/10 02:47
>>55
54じゃないが、VBなら=、Cなら==って言いたいんじゃないの?
そうだとしてもここでは関係ない話だが。

57 :仕様書無しさん:02/11/10 03:02
このスレ削除依頼だそうと思ったレス (265)

168 名前:良レス無しさん 投稿日:02/11/05 23:16
伝統のまったりスレなのに>>52の様なレスを見た時。


58 :仕様書無しさん:02/11/10 03:12
>>57
レス削除依頼だけにしてくれ。

59 :仕様書無しさん:02/11/10 03:33
>>55, >>56
>>38-41

60 :仕様書無しさん:02/11/10 03:36
つまり、「イコールとハイフン」を「==と=」と勘違いした

ということ?

61 :仕様書無しさん:02/11/10 04:31
何が何だかよくわからないが、釣り師 54 の目論みは果たされたという事か?

62 :仕様書無しさん:02/11/10 13:40
え?漏れ釣られたのか Σ(゚Д゚;;)

63 :名無しさん@一回転:02/11/10 13:44
>>17
つまり、「動いているものは触るな」って精神なんですな。
気になるなら時間の空いたときにでもソース覗いて短縮化してみますか?
走りつづけているのが情シスでは一番大事ですからな。

そうやってどんどんどんどんコードが雪だるま式に増えていきますがそれでもいいですか?

64 :仕様書無しさん:02/11/10 14:24
>>63
「動いているものは触るな」は当然。
というか、絶対にさわってはいけない
神聖不可侵ってしらない?


65 :名無しさん@Emacs:02/11/10 14:30
ていうか、動いてるものには触るなってのは常識だと思うけど。
だからといってリファクタリングや改良ができないわけではない。


66 :☆南幸☆:02/11/10 14:55
↑なるほど!ごもっともですね!
http://www5e.biglobe.ne.jp/~nanko-m/index.htm
せっかくなので参考ページをあげておきます
試しに見てやってください

67 :仕様書無しさん:02/11/10 15:00
↑おそらくブラクラ

68 :仕様書無しさん:02/11/10 15:02
タダの広告だったよ

× BrowserCrasherChecker ver.0.19
--------------------------------------------------------------------------------
キャッシュを表示しています
対象 URL
http://www5e.biglobe.ne.jp/~nanko-m/
--------------------------------------------------------------------------------
安全な URL と思われます
危険な因子は見つかりませんでした。


69 :仕様書無しさん:02/11/10 15:04
南幸水産鰍謔阮ニ疫向上健康ドリンク『妙健』の御案内

天然メシマコブドリンク
妙   健

メシマコブは昔から免疫力を向上させる働きがあるキノコとして知られています。弊社ではその免疫活性力に注目し、抽出液を濃縮しドリンク化しました。
メシマコブの効能と、弊社メシマコブドリンクの商品説明を掲載しましたのでご覧ください。


70 :仕様書無しさん:02/11/10 20:57
「動いているものは触るな」をまったく実践させてくれない
プログラムはもういやだーよ

71 :名無しさん:02/11/10 22:41
HTMLで、いまだに、<option>を閉じない。

あと、先頭でXHTMLの宣言をしてるのに、要素名が大文字だったりすると萎える。
一応ブラウザは表示されるけどさ。



72 :仕様書無しさん:02/11/10 22:52
動いてるコード書き直しまくってますが何か?

73 :仕様書無しさん:02/11/10 23:42
>>72
それは本番運用が始まったものに対してですか?
テストはどのように行っているのですか?


74 :仕様書無しさん:02/11/11 00:09
>>73
それは神のみぞ知る。

75 :仕様書無しさん:02/11/11 03:37
(゚Д゚)ハァ?
テストって言ったら、本番稼動させる事だろうが。

76 :仕様書名無しさん:02/11/11 05:07
フィールドテストってやつですな

77 :仕様書無しさん:02/11/11 09:26
だれかログ保存してない?
金曜日に最後に見た前スレがもうDat落ち.早すぎるんじゃないのか・・・

78 :仕様書無しさん:02/11/11 10:01
sscanf((sprintf(x, "%d", a + b), x), "%d", &c);

何がしたいんだか、、この後xは一回も使われてないし。

79 :仕様書無しさん:02/11/11 10:47
せめて sprintf(x, "%d", c = a + b); と書いてくれ・・・。

80 :仕様書無しさん:02/11/11 12:00
>>79
つうか、xを使わないんだから
c = a + b;
でいいんじゃないかなあと思いまつた。

81 :逝手良子:02/11/11 12:16
'OpenArgsが"AddNew"であれば、新規に発注書を作成しる
If Me.OpenArgs = "AddNew" Then
  DoCmd.OpenForm "新規選択", acNormal, , , , acDialog
  Exit Sub
End If

'OpenArgsが"Open"であれば、発注書選択フォームをオープンしる
  If Me.OpenArgs = "Open" Then
  DoCmd.OpenForm "発注書一覧", acNormal, , , , acDialog
  Exit Sub
End If


82 :仕様書無しさん:02/11/11 12:20
フォーム名を変数にするだけで随分スッキリするな。

でも、78 に比べたら全然マシだと思ふ。

83 :仕様書無しさん:02/11/11 13:24
VCで、
char *p = _T("hoge");
のような、_UNICODEを定義したら、コンパイルも通らない
ような書き方があちこちあるよ。
(UNICODE対応はしなくていいから、べつにいいんだけど)

サンプルコードとか見て、なんかわからないけどとりあえず
_Tをつけとけって感じなのかなぁ?


84 :仕様書無しさん:02/11/11 14:20
TCHAR の意味を小一時間説教してやれ。

85 :名無しさん:02/11/11 16:56
buckup
sarch


86 :仕様書無しさん:02/11/11 18:39
int hoge(char *arg1, char *arg2)
{
char buff[BUFF_SIZE];

memset(buff, 0x00, BUFF_SIZE)
strncpy(buff, arg1, strlen(arg1));
strncat(buff, arg2, strlen(arg2));
return hage(buff);
}

こんなのウザいから
書きなおして下さいねって言っちゃった。
snprintf(buff,
strlen(arg1) + strlen(arg2)
"%s%s", arg1, arg2);


87 :仕様書無しさん:02/11/11 18:42
C言語って文字列の機能が貧弱だからレベルによって書き方にかなり差が出るよね。

88 :仕様書無しさん:02/11/11 18:56
>>86
そのコードだとstrncatもsnprintfも使う意義が全くないんだが。

89 :88:02/11/11 18:59
つか、よく見たらつっこみ所満載じゃないか。
やめるやめない以前にそこでその関数呼んだだけで止まっちゃうだろ。

90 :名無しさん@Emacs:02/11/11 19:00
> snprintf(buff,
> strlen(arg1) + strlen(arg2)
> "%s%s", arg1, arg2);

このコードって、strlen(arg1)+strlen(arg2) の長さが buff のサイズより大きいと
バッファオーバーフローすんでないの?

snprintfの第二引数って、バッファサイズ渡すもんだと思ってたんだけど。


91 :仕様書無しさん:02/11/11 19:08
今バッファオーバーフローによるバグがなくならない原因を見ました。

92 :名無しさん@Emacs:02/11/11 19:15
実際、困ったもんですな。


93 :仕様書無しさん:02/11/11 19:17
>>86
下のコードの方が「この会社辞めようと思ったソースコード」だろ?


94 :名無しさん@Emacs:02/11/11 19:18
あー。なるほど。


95 :仕様書無しさん:02/11/11 21:21
>>memset(buff, 0x00, BUFF_SIZE)
この初期化ははやっているのか?
正直文字列がわかっていないやつに文字列操作するPG書かせるときに多少保険をかけるためにやらせてるようにしか思えんのだが。

96 :仕様書無しさん:02/11/11 21:36
>>90
前橋のポインタ本に似たような事例が載ってたなあ。

97 :仕様書無しさん:02/11/11 22:22
>>95
char buff[BUFF_SIZE+10];

とかってのもよく見るね。 予備燃料タンクみたいなもん?

98 :仕様書無しさん:02/11/11 22:24
つか、配列の長さをチェックしてくれないCの仕様が糞

99 :仕様書無しさん:02/11/11 22:26
>>93
上も下も両方では?

100 ::02/11/11 22:26
>>98
んなもん知らねーよ。俺はそんなに賢くないんだ。てめーらで勝手にやれや。

101 :仕様書無しさん:02/11/11 22:28
お前等いつまでも他人をけなしてないで>>86の場合はどうやるのがいいのかちゃんと書けや。

102 :仕様書無しさん:02/11/11 22:32
>>101
サイズに合わせてmalloc()でもしておけばいいんじゃない?

103 :名無しさん@Emacs:02/11/11 22:33
>101
逆切れですか?

snprintf(buff, sizeof(buff), "%s%s", arg1, arg2);

でええんちゃう?


104 :仕様書無しさん:02/11/11 22:34
>>101
おらよ、厨房!

int hoge(char *arg1, char *arg2)
{
char *pBuf;
int nRtn=-1;

pBuf=malloc(strlen(arg1)+strlen(arg2)+1);
if(pBuf)
{
strcpy(pBuf,arg1);
strcat(pBuf,arg2);
nRtn=hage(pBuf);
free(pBuf);
}
return(nRtn);
}



105 : :02/11/11 22:36
http://hentai.s1.x-beat.com/

106 :名無しさん@Emacs:02/11/11 22:37
あ、バッファサイズを可変にしろっつー話だったのですか…。(´・ω・`)ショボーン

107 :仕様書無しさん:02/11/11 22:38
>>104
ネタですか?
hageの仕様も知らないのにメモリが確保できないときに勝手に-1返すなよ。

108 :仕様書無しさん:02/11/11 22:38
>>95
まぁ、いいんじゃないの。
hage() が2個のヌル終端を期待する関数かも知れないし...

109 :仕様書無しさん:02/11/11 22:41
> strcpy(pBuf,arg1);
> strcat(pBuf,arg2);
ウプ


110 :仕様書無しさん:02/11/11 22:42
>>106
元のコードからいってバッファサイズを可変にする必要はないだろう。

111 :仕様書無しさん:02/11/11 22:42
snprintfなんていう環境依存な関数は使わせない

112 :仕様書無しさん:02/11/11 22:45
sprintf使えばいいじゃん。

113 :仕様書無しさん:02/11/11 22:47
>>104
こんなのにいちいちmalloc使うなよ。遅くなるだろ

114 :仕様書無しさん:02/11/11 22:49
厨房を叩いている奴はやっぱり厨房な訳であり。

115 :仕様書無しさん:02/11/11 23:06
後々を考えると
int hoge(const char *arg1, const char *arg2)
が気分いいのだが...

116 : :02/11/11 23:32
>>104
> char *pBuf;
> int nRtn=-1;

> return(nRtn);

この辺もキモイ

117 :仕様書無しさん:02/11/12 00:26
私が書くと

int hoge(char *arg1, char *arg2)
{
_CString cstr;
cstr % arg1 << arg2;
return hage(cstr);
}

※_CStringはMFCのCString似のもの
 % は operator=
 << は operator+=



118 :仕様書無しさん:02/11/12 00:44
>>117
激しくキモイ

C++にするならstd::stringでいいだろ。
なんでわざわざ、そんなまがい物を出すんだよ。

119 :仕様書無しさん:02/11/12 00:54
>>118
std::stringも使えるけどさ
std::stringにoperator+=みたいのないからなぁ
継承して作るにしても例外好きじゃないし(std::string例外吐くよ・・・ね?

なんとなく_CString始めは勉強目的で作ったんだけど
今でも十分使えるから使ってるんだよ


120 :仕様書無しさん:02/11/12 00:57
あ、間違えた
operator+=じゃなくてoperator <<ね

なんでstd::stringにsprintf()のようなものないんだ?
あまり使われないからか?


121 :仕様書無しさん:02/11/12 00:59
>>117
まぁ、std::string使うかどうかは別にして
すっきりしてて見易いね、そのコード


122 :仕様書無しさん:02/11/12 01:12
>>120
stringstream
いや、フォーマット文字列の中身見て、引数チェックしてwarning
出してくれるコンパイラなら、snprintfも便利だと思うけど。

123 :仕様書無しさん:02/11/12 01:19
>>122
stringstreamか
こっち使ってみます
ありがとう


124 :仕様書無しさん:02/11/12 01:24
std::stringでいいような・・・。

int hoge(char *arg1, char *arg2)
{
 std::string str;
 str.assign(arg1).append(arg2);
 return hage(str.c_str());
}


125 :仕様書無しさん:02/11/12 01:44
> std::stringにoperator+=みたいのないからなぁ
> operator+=じゃなくてoperator <<ね

そんなに使いたいならオーバーライド用意すれば。
つーか漏れはそうしてるし。
ついでに int とかからも受け付けると便利だ。

126 :仕様書無しさん:02/11/12 01:47
std::string& operator<<(std::string &L, char R) { return L += R; }
std::string& operator<<(std::string &L, const char *R) { return L += R; }
std::string& operator<<(std::string &L, std::string &R) { return L += R; }

127 :仕様書無しさん:02/11/12 01:48
>>126
それはオーバーロードだな。
125のやつはきっとちがうぞ。

128 :仕様書無しさん:02/11/12 01:53
>>124
ちょっと込み入った感があるね
そうでもないか…

明瞭さを求めれば117のがいいかな


129 :仕様書無しさん:02/11/12 02:04
俺はstd::stringは汚したくない(?)から
継承して独自にアレンジしようとは思わないよ

std::string継承して独自にアレンジするぐらいなら
117みたいに独自の作ればいい

状況に応じて両方使いこなせれば文句もない


130 :仕様書無しさん:02/11/12 02:06
std::string が使える状況で独自クラスを用意するのは止めて欲しいんだが

131 :仕様書無しさん:02/11/12 02:12
std::string str;
str = "abc" += "def"; //これはエラー
(str = "abc") += "def"; //通るけどなんか嫌(w


132 :仕様書無しさん:02/11/12 02:20
>>130
他人に見せる(見られる)状況じゃないなら独自クラスでもいいんじゃない?
独自クラスの方がstring使うよりなにかしらのメリットがあるんだろうし
なきゃstring使え、だろうけど

私はゲームプログラムとか、MFCで文字扱うときは独自クラス
例外嫌だし、便利だし・・・・
仕事ではstringを使ってるよ


133 :名無しさん@Emacs:02/11/12 02:34
一応このスレは仕事での話ということになっているのですが…。


134 :仕様書無しさん:02/11/12 02:35
>>131
std::string str = "ABC";
str += "def";

つーか "abc" += "def" は、どんなクラスを書けば通るんだ。

135 :仕様書無しさん:02/11/12 02:48
>>133
脱線は許さないという strict なスレではなかったと思うけど…。

136 :仕様書無しさん:02/11/12 04:38
VBにおいでよ〜

str = "abc" & "def" なんて余裕だし
str &= "ghi" もできるのら〜

とか言ってみるテスト
実際、VBの文字列処理は楽でいいっすなぁ

137 :仕様書無しさん:02/11/12 04:47
>>136
> str &= "ghi" もできるのら〜

普遍的にできるとは言えない。

138 :仕様書無しさん:02/11/12 05:51
正規表現がないと文字列処理はやってらんないよう。
Delphiの仕事うけちゃったけど、正規表現ないのがつらすぎる。
ついでに手軽に配列作ったりハッシュ作ったりできないのも。
evalもリフレクションもないから馬鹿正直にコードを並べるしかないし。

139 :138:02/11/12 05:55
まてよ。リフレクションはあるか。まあ、あってもなあ…
Apollo使ってみようかな。

140 :仕様書無しさん:02/11/12 06:12
VBで文字列コネコネするぐらいならperlの方がよっぽど駱駝。

141 :仕様書無しさん:02/11/12 08:43
>>136
>str &= "ghi"もできるのら〜
VBってこんな書き方できたっけ???


142 :仕様書無しさん:02/11/12 09:28
もしかしてオーバーライド出来るようになったのかも...

143 :仕様書無しさん:02/11/12 13:51
昨日のレビューで見かけたソースの一部を要約したもの。
char *p = "hogedayo.hagejyanaiyo";
char a[ARRAY_SIZE];

memset(a, 0x00, ARRAY_SIZE);
memcpy(a, p, ARRAY_SIZE);

/* その後,str系関数にaを渡す */
こんな感じのソースを書いているのだ。

フツーは
char *p = "hogedayo.hagejyanaiyo";
char a[ARRAY_SIZE];

strncpy(a, p, ARRAY_SIZE - 1);
a[ARRAY_SIZE - 1] = '\0';

/* その後,str系関数にaを渡す */
「こうじゃねー?」と指摘したが
どうやら何を言いたいのか理解してもらえなかったみたい。


144 :仕様書無しさん:02/11/12 14:01
>>141
.Net かも・・・?(未確認)

145 :仕様書無しさん:02/11/12 14:05
>>144
とりあえず、手元のVB6では無理だった

146 :仕様書無しさん:02/11/12 14:42
>>143
> どうやら何を言いたいのか理解してもらえなかったみたい。
そうだな。
どっちのコードでも
ARRAY_SIZE > strlen(p)の場合、未定義の動作をするような
糞コードを理解したいとは思わない。

147 :146:02/11/12 14:46
嘘です。下のコードは正しい。
strncpyは
> src の長さが n よりも少ない場合は、 dest の残りは NUL 文字で埋められる。
とかいう機能があるのを忘れてました。すいません。m(_ _)m

148 :仕様書無しさん:02/11/12 15:01
>>147 ふあぁぁぁ〜。偽者さん、うそついちゃだめよ。

149 :仕様書無しさん:02/11/12 15:31
何よりも、

> memset(a, 0x00, ARRAY_SIZE);

があるのが痛い。

150 :仕様書無しさん:02/11/12 15:36
あのんなあふざけいるなよ
韓国ががんばっているのだから良いではないか
ふざけいんなここのやつら

151 :仕様書無しさん:02/11/12 15:40
さりげなく150Get

152 :151:02/11/12 15:41
>>150
あっ!アホー
ふざけいるなよーーーーーー

153 :仕様書無しさん:02/11/12 15:43
>>143
(゚∀゚) アヒャッ

154 :仕様書無しさん:02/11/12 15:50
>>143
フツーは
char *p = "hogedayo.hagejyanaiyo";
char a[ARRAY_SIZE];

*a = '\0';
strncat(a, p, sizeof(a) - 1);

またはsnprintfが使える処理系ならば
snprintf(a, sizeof a, "%s", p);

/* その後,str系関数にaを渡す */
「こうじゃねー?」と指摘したいが
どうやら君には理解してもらえないみたい。

155 :仕様書無しさん:02/11/12 16:16
あのんなあふざけいるなよ
韓国ががんばっているのだから良いではないか
ふざけいんな>>154


156 :仕様書無しさん:02/11/12 17:29
みんな strlen(p)>=ARRAY_SIZE の時はエラーにしないか?

157 :仕様書無しさん:02/11/12 17:59
>>156
ここに居る房は、動的確保もできない連中ばかりだから、そこまで頭が廻らん
のだろ?

158 :仕様書無しさん:02/11/12 18:30
ストリーミングのように徐々に処理していくヤツだったりしない?
もしくは、動的確保では速度が気になってしまう場所とか。


159 :仕様書無しさん:02/11/12 18:48
mallocした関数が責任持ってfreeしなきゃ

160 :仕様書無しさん:02/11/12 20:00
>>157
動的確保のコードを書いたら他の所が糞でぼこぼこに言われた>>104ですか?(w

161 :仕様書無しさん:02/11/12 20:16
>>160は、>>104に厨房扱いされた粘着の>>101ですか?(藁

一応マヂレスしとくと、唯一まともなこと書いてるのは、>>115くらいじゃ
のないかなぁ。


162 :仕様書無しさん:02/11/12 20:32
なんだかスレの主旨からずれてきているような気が…
ここは「オレのソースは厨か?」だったっけ?

163 :名無しさん@Emacs:02/11/12 20:43

/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| とりあえず、buffer overflow指摘したのはワシ。
\________ _______
                  |/
             ∧,,∧∩
          .目ミ ゚Д゚ ミ
           || (ミ  ミ
           ||  ミ  ミ〜
           ||  ∪ ∪


164 :仕様書無しさん:02/11/12 22:17
         / ̄ ̄ヽ
         l__T_i_
         |ミ/ ・ ・ l   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        (6 〈 / Jヽ〉 < 松井はメジャーでは通用しないよ!!
        |.  Д|   \_______________
        |\__|
     ./´⌒` r‐-‐-‐/⌒ヽ ビシッ!
     |; ⌒ :; |_,|_,|_,h( ̄丿ヽ
     .|: ; : : : .| `~`".`´ ´"⌒⌒)
      .|; ; ; ; 人  入_ノ´~ ̄
      l ; ;/   // /''

165 :仕様書無しさん:02/11/12 23:22
>>164
お前誰だよ(w

166 :八千代市民:02/11/13 01:00
snprintfって何?
おせーて、おせーて。

167 :仕様書無しさん:02/11/13 01:27
asprintfの機能縮小版。
stringstreamの使い方が分からない可哀想な人、または
使い方が分からない人に包囲された可哀想な人のための関数。

168 :仕様書無しさん:02/11/13 03:19
C99で標準Cに取り込まれたのってsnprintfも含まれてなかったか?

169 :仕様書無しさん:02/11/13 05:37
>>167
asprintfはglibcローカルでは。BSD系のlibcにも流出してはいるが。
一般にはsnprintf相当物のほうが、はるかに広く認知も
実装もされているだろう。実際に、現在のCプログラムでは
snprintfはbuffer overflowを回避するための手段の
一つとして、strncatと同様に、非常に重用されている。
# もっともその移植性の無さのために、apacheのように
# snprintfの独自実装を用いているケースもしばしば見られ、
# どのみち独自にformatterを実装するぐらいであれば、
# asprintf相当のものを作るのも別に大した話じゃないのだが...


170 :仕様書無しさん:02/11/13 22:40
/***************************************
いっかいめ!
***************************************/


171 :仕様書無しさん:02/11/13 23:24
>>169
ネタをネタと(以下略)

172 :やむ@名無し:02/11/13 23:36
/*****ここからコメントアウト
  hoge();  
  hage();  /* 育毛剤注入 */
  sage();
ここまでコメントアウト******/

173 :仕様書無しさん:02/11/13 23:46
>>172

そもそもコンパイルが通るのかと小一時間(略

174 :仕様書無しさん:02/11/13 23:49

最近の話題は、
Java専業の漏れにはワカリマセーン

175 :仕様書無しさん:02/11/13 23:51
あ〜、どっかでネストしたコメントも正しく解釈するCコンパイラみかけたな
どこだっけな〜

176 :やむ@名無し:02/11/13 23:52
>>173
某H社製マイコンのメーカー純正コンパイラは、
“コメントのネストを許可する”なんてのがオプションで指定できてしまう

177 :仕様書無しさん:02/11/14 00:26
>>175
昔のMS-DOS用コンパイラにあったような気がする。
肝心の名前が思い出せん。


178 :仕様書無しさん:02/11/14 00:30
昔なつかしいTurbo Cにはそんなオプションがあったと記憶している。


179 :仕様書無しさん:02/11/14 00:41
>>178
Borland C++ Compiler にもある
bcc32 -C

180 :仕様書無しさん:02/11/14 00:46
Del厨なんで、コメント付きのブロックをコメントアウトするときは、
{}で括ってしまいますが何か。

181 :やむ@名無し:02/11/14 01:02
#if 0
  :
#endif
を多用してるのだが、
これをコメントとして解釈してくれるエディターって無いかな?

182 :名無しさん@Emacs:02/11/14 01:05
>181
その話、最近どっかで見た。このスレだったかな?


183 :仕様書無しさん:02/11/14 01:07
>180
おまえはレンズマンに選ばれた。


184 :仕様書無しさん:02/11/14 03:01
>>181
Vimではコメントになるよ

185 :仕様書無しさん:02/11/14 04:58
hide-ifdef-mode

186 :仕様書無しさん:02/11/14 09:12
某誌に某シェアウェアプログラマが載せたサンプルコード
struct ffblk far *p;
(中略)
p += sizeof(struct ffblk) * 8000L;
お前のシェアウェアには本当にこんなコードが入ってて
まともに動いてるのかと小一時間(略

187 :仕様書無しさん:02/11/14 09:14
>>186
とりあえず、雑誌名とページ番号を晒せ!

188 :仕様書無しさん:02/11/14 09:23
なんか、ポインタ操作を全然理解してない証拠みたいなソースだね。
それでシェアウエア?

189 :仕様書無しさん:02/11/14 10:20
外注なんで辞めるとかなんとかじゃないし、
多分単なる俺の無知なんだろうけど。

人が作ったシステムの調査を命じられ、ソースを何気なく開けてみた。

' 機能概要 :対象年月のMax日付を設定する処理。
というファンクションがあった。

どうも
"312831303130313130313031"
って値が設定してある定数を、一々分割して末日を取得しているらしい。

ついでにうるう年判定は400の倍数かどうかとか100の倍数かとか4の倍数かとかで
条件分岐して算出してる模様。

どちらも日付関数を駆使すれば取得可能だと思っていたが…
M$の関数はそんなに信用ならんのか。

190 :仕様書無しさん:02/11/14 10:41
>>189
可能なら、下手にライブラリに依存せんほうがいいと思うぞ。

M$のその手の関数(日付や時刻、通貨など)ってロケール設定やら何やらに
依存しまくってるから、客がよく判ってないのにコントロールパネルの設定
いじったりすると、勝手にプログラムの挙動まで変わって、揚げ句の果てに
バグじゃないかとか言われたりするから。

うるう年に関しては、なぜいまだにBOOL IsLeapYear(int nYear)みたいな
標準関数が標準規格として存在しないのか、そっちの方が知りたい。

191 :仕様書無しさん:02/11/14 10:55
MSを信じるか外注を信じるかそれが問題だ。

192 :仕様書無しさん:02/11/14 10:58
>>190
標準規格も何も、閏年なんか、
(year % 4) ? FALSE : TRUE
でいいじゃねーか。

どーせ、お前らの作るプログラム、2100年まで、動いてないだろ?
(2年前の教訓、全く無し)

193 :仕様書無しさん:02/11/14 11:03
そういえば2年前に年は0〜50の場合、2000年として処理をする。
51〜99の場合、1900年として処理をする
とかいうコードをあちこちにコピペした記憶があるが、
まぁ、あと48年後には退職してるからいいか

194 :仕様書無しさん:02/11/14 11:03
>>192
漏れのプロだといちおー2200年まで動くように
if( year != 2100)
を入れてるよ。


195 :仕様書無しさん:02/11/14 11:07
>>192-194
お前らな…(;´Д`)

196 :仕様書無しさん:02/11/14 11:30
これはどうよ?
private boolean isLeapYear(int nYear){
  if ((nYear % 4) == 0){
    if ((nYear % 100) == 0){
      if ((nYear % 400) == 0){
        return true;
      }else{
        return false;
      }
    }else{
      return true;
    }
  }else{
    return false;
  }
}

197 :仕様書無しさん:02/11/14 11:34
>>189
俺、ちょっと前にそういう定数直したよ。
6月と7月のMax日付が逆転してやがりますた…

198 :仕様書無しさん:02/11/14 11:58
Max日付は「西向く士(にしむくさむらい)」ですな。

199 :仕様書無しさん:02/11/14 12:32
ちょっと待った。
年月の Max 日付が変わってしまうようなロケールが存在するのか?

200 :仕様書無しさん:02/11/14 12:37
> うるう年に関しては、なぜいまだにBOOL IsLeapYear(int nYear)みたいな
> 標準関数が標準規格として存在しないのか、
それこそカレンダーのロケール設定に依存しまくるからでは。
イスラム圏の暦とか。

201 :186:02/11/14 12:48
他にもWin16でのポインタ正規化と称してこんなの書いてる。
(LPSTR)MK_FP(FP_SEG(p)+FP_OFF(p)/16,FP_OFF(p)%16)
そ れ は D O S 用 だ ろ
hugeポインタを知らないのかと思いきや、本文のほうには
「hugeポインタを使うか」とか書いてるし、ポインタの引き算は
((FP_SEG(a)-FP_SEG(b))/8)*0x10000L+FP_OFF(a)-FP_OFF(b)
ちゃんとWin16用になってる。わけわからん。
>>187
Cマガ1999年6月号の44ページ

202 :仕様書無しさん:02/11/14 13:24
また古い物を持ち出してきたな

203 :187:02/11/14 15:26
>>201
わざわざスマソ。 でも、見たけどそれらしい(ってか44ページには)コード
らしきものは載ってないみたいだぞ。 144ページあたりにもそれらしいの
ないし。 いや、漏れもヒマだなと思ってみたり...。

204 :名無しさん@Emacs:02/11/14 15:34
>200
ていうか、暦の変換みたいなものこそロケールとかで対応しても
良さそうなモンですけどね。

標準的な暦って誰が決めてるのかな? 国連?


205 :仕様書無しさん:02/11/14 15:55
>>204
バーカ
首相が集まってジャンケンして一番勝った奴が決めてるに決まってんだろ


206 :仕様書無しさん:02/11/14 16:52
>>205
大統領制の国とかは仲間外れかよ!

207 :名無しさん@Emacs:02/11/14 17:31
首相と大統領がいる国って、どっちが偉いんでしたっけ?
ていうか、両方いる国はズルいですね。


208 :仕様書無しさん:02/11/14 18:06
アメリカもフランスにも首相いるが
役割はちゃんと分担してるし良いと思われ

209 :仕様書無しさん:02/11/14 18:08
基本的には、大統領が首相を任命するので、大統領がエライ。

210 :仕様書無しさん:02/11/14 18:10
>208
http://www.google.com/search?q=アメリカ首相
で2件しかhitしないんだが。

211 :仕様書無しさん:02/11/14 18:30
アメリカの首相って誰だよ……。

212 :仕様書無しさん:02/11/14 18:37
だから、注目されないけど仕事してるって
単に役職名が首相となってるだけで仕事は違う
詳しくは知らんけどね

日本で一番エライは首相、
雨ちゃんで一番エライは大統領、
ただそれだけ

213 :仕様書無しさん:02/11/14 18:40
>212
偉さの基準にもよるが、賢きあたりはどうなるのだろうか。

214 :名無しさん@Emacs:02/11/14 18:56
>209
大統領と首相って、CEOと社長、みたいなもん?
つーか、CEOと社長の違いもよく分かってないんだけど。

>212
> だから、注目されないけど仕事してるって

これ読んだ瞬間、電波を感じたのですが…。

アメリカには Prime Minister と呼称されるポジションは無いと思いまつ。

でも、この件に関して議論するつもりはないので、
あると言い張るなら、それはそれでいいです。


215 :仕様書無しさん:02/11/14 19:19
だから日本語にすりゃ首相だっつうの
もとの英語忘れたからどうしようもない

ホワイトハウスのHPあたり逝って調べりゃ分かるかも…
って思ってみたが、1000人位指名されてて多すぎて分からん

まあ良いか
電波と板違いスマソ

216 :仕様書無しさん:02/11/14 19:32
簡単アメリカ政府組織図
http://www.geocities.co.jp/WallStreet-Bull/5814/organ.html

どれのこと?

ついでに晒しあげ

217 :仕様書無しさん:02/11/14 21:56
>>177
「らてぃす」?


218 :仕様書無しさん:02/11/14 22:41
おいおいキミたち
VBを使ってると女の子にモテモテだよ
AccessとかExcelとかでVBA使ってる女の子に
チョロチョロ、ペロペロって教えてあげるのさ
もう、そりゃー神だよ、モテモテよ


219 :仕様書無しさん:02/11/14 22:44
>207
 大統領は一般的に、国家元首。その国を代表する人物。
 首相は内閣(行政府)の長でしかない。

 日本の場合、国家元首はいない(規定がない)。慣例として天皇が国家元首
扱いではあるけどね。
 アメリカは国家元首が大統領で、同時に行政府の長。

220 :仕様書無しさん:02/11/14 22:53
>207
 大統領は通常、国家元首。国家の代表。
 首相は行政府の長でしかない。

 日本の場合、国家元首はいない(憲法に規定がない)が、慣例として天皇が国家
元首として(国際的に)扱われている。
 アメリカは大統領が国家元首で、同時に行政府の長(=首相と同じ)。
 国家元首と行政府長が一緒、ってのは例外的。

>215
 そりゃ大統領権継承順位の話じゃないか?
 通常継承順位第二位に国務長官(=外務大臣)がくるけど、ありゃ首相じゃ
ないし、Prime Minister でもないぞ。Secretary of State だからな。

221 :220=221:02/11/14 22:54
スマソ、書込み失敗かと思って二重書込みしちまった……鬱。

222 :やむ@名無し:02/11/14 23:14
>>221
2度目の方が文章良くなってるね

223 :仕様書無しさん:02/11/14 23:20
かなり話が脱線している様な雰囲気を醸し出していて良い塩梅です。

224 :仕様書無しさん:02/11/15 00:01
>>193
そういやその処理方法で特許取ってる雨の会社があって、(当時)これ
から権利主張して行くみたいなニュースを見た覚えがあるけど、その
後話出ないという事はさすがに却下されたんかな。

225 :仕様書無しさん:02/11/15 00:04
>>199
和暦。

それにしても、年が 4 桁と仮定するのはよくない。すぐに 10,000 年問題が
起こって、そういったコードは恨まれるよ。


226 :やむ@名無し:02/11/15 00:11
>>225
日本では「平成元年問題」があったのか。

対応してないアプリが存在するなら
今は昭和77年になってるはずだが

227 :仕様書無しさん:02/11/15 00:42
>>225
だいじょぶ、このコード3週間後にちゃんとしたコードに置き換えられる予定だから
恨まれないのだ。

228 :仕様書無しさん:02/11/15 00:50
それにしても、年が 5 桁と仮定するのはよくない。すぐに 100,000 年問題が
起こって、そういったコードは恨まれるよ。

229 :仕様書無しさん:02/11/15 01:14
7900年後ってどうなってるんだろ・・・
紀元前6000年とかの絵のような文字が判読できるか出来ないかだから
現代を考古学する未来の人は困るだろうなぁ。
「磁気みたいな不安定なモノに頼った時代が分からない」
とかなんとか言ってそう。
ペーパーレスが本格化しだした時期からきっと空白の風俗史・民族史になるよ。
石版に日記書いておくと死んだ後有名になれるかもよ。

230 :仕様書無しさん:02/11/15 01:31
>>210
http://www.google.co.jp/search?q=%E3%82%A2%E3%83%A1%E3%83%AA%E3%82%AB%E9%A6%96%E7%9B%B8&ie=UTF-8&oe=UTF-8&hl=ja&lr=

今やったら3件だった。

231 :仕様書無しさん:02/11/15 02:40
>>228

それにしても、年が 6 桁と仮定するのはよくない。すぐに 1,000,000 年問題が
起こって、そういったコードは恨まれるよ。

232 :仕様書無しさん:02/11/15 02:46
>>231

それにしても、年を 32bit で管理するのはよくない。すぐに 4,294,967,296 年問題が
起こって、そういったコードは恨まれるよ。

233 :仕様書無しさん:02/11/15 02:52
>>231

それにしても、年を 64bit で管理するのはよくない。すぐに 18,446,744,073,709,551,616 年問題が
起こって、そういったコードは恨まれるよ。


234 :233:02/11/15 02:53
>>232だった…鬱

235 :仕様書無しさん:02/11/15 03:16
>>233

それにしても、年を 1,024bit で管理するのはよくない。すぐに 179,769,313,486,231,
590,772,930,519,078,902,473,361,797,697,894,230,657,273,430,081,157,732,675,805,
500,963,132,708,477,322,407,536,021,120,113,879,871,393,357,658,789,768,814,416,
622,492,847,430,639,474,124,377,767,893,424,865,485,276,302,219,601,246,094,119,
453,082,952,085,005,768,838,150,682,342,462,881,473,913,110,540,827,237,163,350,
510,684,586,298,239,947,245,938,479,716,304,835,356,329,624,224,137,216 年問題が
起こって、そういったコードは恨まれるよ。


・・・誰か止めてくれ。

236 :仕様書無しさん:02/11/15 03:39
宇宙の寿命からすれば64bitあれば十分じゃないの?

237 :仕様書無しさん:02/11/15 03:51
ちなみに、65,636bits にしたら 19,729 桁になりやんの。

238 :237:02/11/15 03:51
65,536bits、デスタ・・・。鬱

239 :仕様書無しさん:02/11/15 04:01
ちなみに、4294967296bits にしたら 1292913987 桁になりやんの。

240 :233:02/11/15 04:03
>237
ちなみに、4294967296bits にしたら 1292913987 桁になりやんの。

241 :仕様書無しさん:02/11/15 04:13
ここはホームラン競争のスレになりますた。

242 :仕様書無しさん:02/11/15 04:49
年をunsignedで管理すると歴史学者に恨まれるのでよくない。

243 :仕様書無しさん:02/11/15 05:05
宇宙誕生から数えれば符号ビットはいらない。

244 :仕様書無しさん:02/11/15 05:07
まぁ実際問題として、1000年後のことを考えて
色々と細工したコーディングしてたら怒られるわけだが。

245 :仕様書無しさん:02/11/15 06:46
>230
三件目は、
「さすがアメリカ、首相官邸とは違うね」
だろうが。hitしたとは見なさない。

246 :仕様書無しさん:02/11/15 06:47
>235
おまいら、宇宙の寿命についてどう考えていますか

247 :仕様書無しさん:02/11/15 06:52
おまいら、お政治についてどう考えていますか

248 :仕様書無しさん:02/11/15 08:29
>>246
処理系依存

249 :仕様書無しさん:02/11/15 08:30
>>248
未定義

250 :仕様書無しさん:02/11/15 11:12
年問題はRFC2550できちんと解決されている。ちゃんとRFCを読め!
http://www.imasy.or.jp/~yotti/rfc2550j-yamaguti.txt

251 :名無しさん@Emacs:02/11/15 11:16
> 1 April 1999


252 :仕様書無しさん:02/11/15 11:21
>>251
そういうのを「ネタにマジレス」という。

253 :仕様書無しさん:02/11/15 11:22
>>225>>228>>231>>232>>233>>235>>236

おまえら RFC ぐらいちゃんと読めよ。
RFC2550 でその問題の解決法はちゃんと述べられてる。
ttp://www.imasy.or.jp/~yotti/rfc2550j-yamaguti.txt
ちゃんと宇宙の寿命についても考えてるぞ。
宇宙の寿命が尽きるから○○桁で十分というのは、Y2K問題と同じダメな考え方だ。

254 :仕様書無しさん:02/11/15 11:32
>226
 さらにいえば、同じ年で元号が違う(A.D.1989=昭和64年(1/7 まで)=平成元年(1/8 から))
という罠がある罠。
 きちんと元号に対応するのは無駄に面倒。

255 :仕様書無しさん:02/11/15 11:33
何を偉そうに・・・
データベースとか実際にどうやって実装しろと言うんだよ。
あのいかにも重たそうで格納しにくそうなフォーマットはお断りだからな。

256 :仕様書無しさん:02/11/15 11:34
どうでもいいが、>>248>>249 は逆の方がいいと思った。

257 :199:02/11/15 11:42
いや・・・。
> 年月の Max 日付が変わってしまうようなロケールが存在するのか?
つーのは、フォーマット yyyymmdd で変換かけた時に結果が変わってしまう
ロケールがあるのかという事だったんだが、和暦って何か関係あるの?

258 :仕様書無しさん:02/11/15 12:30
#define MSG_TYPE_WORNING'W'

これで「ワーニング」とかのたまわれた日にゃ。

259 :仕様書無しさん:02/11/15 12:45
>>258
↓のwav聞く限り、別に間違ってないじゃん。
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=worn&sw=0
何が不満?

260 :220:02/11/15 12:45
おいおいキミたち
VBを使ってると女の子にモテモテだよ
AccessとかExcelとかでVBA使ってる女の子に
チョロチョロ、ペロペロって教えてあげるのさ
もう、そりゃー神だよ、モテモテよ


261 :259:02/11/15 12:45
あ・・・「wearの過去分詞」とか書いてやがるよ・・・

262 :仕様書無しさん:02/11/15 12:46
260 コピペ age 荒らしウザイ

263 :やっぱり最高:02/11/15 16:21
Function years(appo As Variant) '勤続年数取得
Dim cnt As Integer , cntcale As Integer , calesu As Integer
Dim tblcale(1 To 12)
Dim Y As Integer , M As Integer
Dim apmon As Long , nowmon As Long

  For cntcale = 12 To 1 Step -1
    tblcale(cntcale) = cnt
    cnt = cnt + 1
  Next

  Y = Year(Now) - Year(appo)
  If Month(appo) > Month(Now) Then
    apmon = Month(appo)
    nowmon = Month(Now)
    calesu = tblcale(apmon)
    M = calesu + nowmon
    Y = Y - 1
  Else
    M = Month(Now) - Month(appo)
  End If

  Select Case 0
    Case Y
      years = M & "ヶ月"
    Case M
      years = Y & "年"
    Case Else
      years = Y & "年" & M & "ヶ月"
    End Select
End Function


264 :仕様書無しさん:02/11/15 16:30
年月の計算は、何か組み込み関数があった気がしないでもないが、それより
  For cntcale = 12 To 1 Step -1
    tblcale(cntcale) = cnt
    cnt = cnt + 1
  Next
これが素敵。

265 :仕様書無しさん:02/11/15 17:28
出向先で、srand の種を何にしたらいいかなーと向こうの人達が考えてたから、時間を与えたらどうですかと提案したら、時間が変更されたら、一緒だ
といわれた。まぁある意味正しいのだが、システム起動時の時間を与えれば
種が一緒になるなんて事はほぼ起きないから、これでいいんじゃないかと思
いながらも、そこで引き下がってしまった弱気もの。

で、その人達が最終的にとった手段は、ネットワークのMACアドレスを種に。
ぉぃ、それだと毎回種が一緒じゃねーか!

確かに、それまでに、その場には馴染めなかったが。。。

266 :仕様書無しさん:02/11/15 17:47
> そこで引き下がってしまった
ここが一番の敗因だな。
小一時間説得すれば良かったのに。

267 :これで哲也:02/11/15 17:56
if (a=2){
 ・
 ・
 ・
}


268 :仕様書無しさん:02/11/15 18:11
>>267
普通Warning出ないか?



269 : :02/11/15 18:20
>>268
でねーよ。
QACかければ、出るかも。


270 :仕様書無しさん:02/11/15 18:21
>>268
Javaだとエラー。Cだと素通り。

271 :仕様書無しさん:02/11/15 18:28
>>265
重要な事を書き忘れてた、複数のマシンがサーバにアクセスしにいくため、
複数のマシン間で異なる値が必要だった。(サーバにアクセスにいく値が
各マシン間で一意な値が欲しい)

あるマシンから1度サーバにアクセスにいったのち、他のマシンが
アクセスしていない状態で、そのマシンを再起動したら、同じ値でアクセス
されるから。。。

まぁ、無事出向先から戻って来れたから、いいけど。。。

272 :仕様書無しさん:02/11/15 18:42
>>271
その場合、MACアドレス+プロセスID+アクセス時刻にしとけばいいんじゃないの?
ランダムにする必要があるのかを小一時間問いつめたい

273 : :02/11/15 18:45
>>272
MACアドレス自体固定だから、意味無いだろ?
Z80だとリフレッシュレジスタを種にできたのだが・・・。



274 : :02/11/15 18:47
>>272
だからアクセス時刻で十分。
上司がアホだったということで、チャンチャン


275 :273:02/11/15 18:50
>重要な事を書き忘れてた、複数のマシンがサーバにアクセスしにいくため、
複数のマシン間で異なる値が必要だった。

ごめん、ならMACアドレスでいいよな。


276 :やむ@名無し:02/11/15 22:24
>>267
定数との比較に限るが、
if (2=a) ならコンパイラ通らんから
if (2==a) と書いてる



277 :仕様書無しさん:02/11/15 22:45
>>276
その書き方きらいだ。マジでうざい。氏ね

278 :仕様書無しさん:02/11/15 22:46
VBでまでその書き方してるからな。マジで市ね

279 :仕様書無しさん:02/11/15 22:50
CREATE TABLE(
 ...
 START_DATE CHAR(8)
 ...


280 :やむ@名無し:02/11/15 22:51
>>277
そうか、×なのか・・・
これからは気を付けるから
×な理由を教えといてくれない?

>>278
組み込み専門なんでVBは知らん

281 :仕様書無しさん:02/11/15 23:34
>>280
理由?
俺は上のコードを読むとき頭の中では
「aが2のときは」って考えるんだよ。
なのに2==aじゃ
「2がaのときは」ってなって
ハァ?
ってなるんだよ。
まあ、個人的意見だがな。とにかく俺は嫌いだ。

282 :仕様書無しさん:02/11/15 23:39
>>281
言い方が悪いが、おおむね同意。
じゃあオブジェクト指向言語なら2.equals(a)と書くのかと。

最近のコンパイラならちゃんとWarning出すし、もう時代錯誤と言おう。

283 :仕様書無しさん:02/11/15 23:41
>>282
本物のオブジェクト指向言語ならそう書くぞ。

284 :仕様書無しさん:02/11/16 00:03
っていうか、思考に素直なコードで書いて欲しいってことで
オブジェクト指向言語がどうとかは関係ない。
変な小細工しないでちゃんとデバッグすればいいじゃんってこと。

285 :仕様書無しさん:02/11/16 00:41
>>279
俺がやった前々回のプロジェクトもデータは全部 CHAR 型だった。おまえやる気
あんのかと。8 桁の日付文字列を SUBSTR で分割して || で連結した奴が○○
カラムの SUBSTR で +3 ヶ月した奴が… みたいなすげー SQL 書かされたよ。

でも思ったほどパフォーマンス悪くならなかった (DB2)。

286 :やむ@名無し:02/11/16 00:44
>>281
ああ予想通りの回答・・・
昔ハマった事あって、それ以来ずっと習慣になってたが
今となってはたとえ間違えて代入しちゃっても直ぐに気がつくだろうな
は〜い、了解で〜す!



287 :仕様書無しさん:02/11/16 00:52
前はこういう個人的なこだわりから大論争に繋がっていたもんだが (m_ 接頭辞とか)、
みんな大人になったねぇ。

288 :やむ@名無し:02/11/16 00:55
論争するほどこだわってるわけじゃないしな

289 :仕様書無しさん:02/11/16 00:59
自分はしないのだけど Java も皆、独自のスタイルを持っているの?

290 :仕様書無しさん:02/11/16 01:08
Java は Sun がコーディング標準出してるし、コアのソース公開されてるし、
C/C++ で甘かった言語仕様が詰められてるし、時代的に IDE (開発環境全般)
も進化してるから、長くやってる人はそれほど癖がない。もともと m_ や
2==a ってのはコーディング上のうっかりミスをなくすための宗派でしょ。

んでも C/C++ や VB から Java に来たばかりの人はよく分かるな。お里が
知れるって奴か。

291 :仕様書無しさん:02/11/16 01:44
ふーむ、剛に従うか...

292 :仕様書無しさん:02/11/16 06:55
2==a とか m_var とか、回りにそんなコード書く人がいないから、一部の変な人だけが
使う書き方だと思ってたんだけど、そうでもないんだなぁ…と思いマスタ。
あ、社会人3年生です。

293 :仕様書無しさん:02/11/16 08:58
2==aが大嫌いなのは同意。ただ、JAVAのString比較で
"true".equals(someString)
とすることは結構ある。someStringがnullであることもありうるときね。

nullチェックが省けるので楽したい時はこうする。


294 :仕様書無しさん:02/11/16 09:02
Javaのコーディング標準では、m_varと書くところってなんて書くんだ?
_var?

ちなみに、Delphi標準だとFVar

295 :仕様書無しさん:02/11/16 09:15
>>294
特にメンバ変数とローカル変数を区別するような命名はしないのが標準。
明示的にしたいなら this.var とやるし。

296 :仕様書無しさん:02/11/16 09:17
C#ではどうなってたっけ?

297 :仕様書無しさん:02/11/16 10:03
C# も同じだと思うが?

298 :仕様書無しさん:02/11/16 10:07
this とか self がある言語で接頭詞とか使ってたらできない奴だと思うな、俺は。


299 :仕様書無しさん:02/11/16 10:46
ハンガリアンでごめんなさい。

300 :仕様書無しさん:02/11/16 11:23
>>293
2==aが嫌いならJavaでもそんなことしないでくれ
後で他の人が見たときに、someStringがnullかもしれないから
こうしてるんだな。という、余計な思考が入るじゃん。

301 :仕様書無しさん:02/11/16 11:41
2==a と書く人間は a==b をどう書くのか知りたい
まさか 0==a-b とかするのか?

302 :仕様書無しさん:02/11/16 12:16
>>300
それが悪い事とは思えないが。

303 :仕様書無しさん:02/11/16 12:29
>>302
え?
脊髄反射的レスはやめてくれ

304 :仕様書無しさん:02/11/16 17:55
>301
const int c=a;
if (c==b) ...


いや、脊髄反射的レスだが

305 :仕様書無しさん:02/11/16 17:59
>>304
そんな事に労力割くぐらいなら、if 文で == 書く時にもっと注意して書けよ。

306 :仕様書無しさん:02/11/16 18:56
>>298
まさかメンバ変数は全てthisもしくはselfを通してアクセスせいと?
だとしたら俺には>>298のほうが出来ないやつに見えるが。

307 :298:02/11/16 19:01
>>306
明示的に使わなければいけない局面では this とか self 使えばいいじゃん。
言語仕様で用意されてる機能を使わないで m_ だの何だの付けるのは馬鹿だと思うんだが。
馬鹿の一つ覚えみたいに全部に this 付けろとは言ってない。

308 :仕様書無しさん:02/11/16 19:12
>>306
つーか、メンバ変数全てに this-> つけて回るのと、メンバ変数全てに m_ つけて
回るのとで、何の違いがあるんだ?

309 :仕様書無しさん:02/11/16 19:35
>>293
"true".equals(someString)ってな書き方は嫌いだな。
俺はこういうふうにしている。

1) パラメータのnull値を許容しない場合
 /**
  * @param hoge_arg "true" or "false".
  * @throws NullPointerException hoge_arg is null.
  */
 public void someMethod(String hoge_arg) {
  if (hoge_arg.equals("true")) {
   ...
# @throwsの記述は省略することもあり。

2) パラメータのnull値を許容する場合
 /**
  * @param hoge_arg "true" or "false" or null.
  */
 public void someMethod(String hoge_arg) {
  if (hoge_arg != null && hoge_arg.equals("true")) {
   ...

常に"true".equals(hoge_arg)って書かれちゃうと、
書き手がnullを想定しているのかどうかが
わからなくなってしまうのが嫌。
そもそも、10文字程度のタイプをケチってどうする?

310 :仕様書無しさん:02/11/17 00:04
 東大卒とか言っていちいちウザイプロマネが書いたソース

for( ){
    ループ処理
if() goto endloop ;
}
endloop :
終了処理

…………東大ではbreakを教えていないらしい。


311 :仕様書無しさん:02/11/17 00:08
>>310
学歴complex厨ハケーン

312 :仕様書無しさん:02/11/17 00:56
310じゃないが、何でそうなるんだろう

313 :仕様書無しさん:02/11/17 01:14
ワラタ
良いセンスしてるな
がんがってくれ

314 :仕様書無しさん:02/11/17 11:02
>>310
別に悪く無いじゃん。どこが悪いんだ?
gotoの行き先がループのすぐしたにあるんだから別にいーじゃん。breakとかわらんだろ、いやむしろインパクトがあるぶんこっそりbreakを使うより見失うこと無いだろ。

315 :仕様書無しさん:02/11/17 11:10
breakが適当な場所にgotoを使うのは、現代では間違いだろ。
10年前ならいざしらず、な。

316 :仕様書無しさん:02/11/17 11:19
>315
私もそう思いました。
業界4年目のものでgoto使われていたのすらヨウわかりませんが、、

gotoは排除の方向で、、、

317 :仕様書無しさん:02/11/17 11:58
>>314
「こっそりbreak」って、何や? 中房がトイレで隠れて煙草吸ってるみたいな
もんか? 「普通のbreak」と何が違うのか教えてホスイ!

318 :314:02/11/17 12:00
>>315 , 316
なにを根拠に言っているんだ?
だから無能だといわれるんだよ、チミらは

319 :仕様書無しさん:02/11/17 12:01
実は310は、8重にネストしたforを省略しているだけというわな。

320 :仕様書無しさん:02/11/17 12:03
gotoを使うなっていうのは幻想だ

321 :仕様書無しさん:02/11/17 12:07
つうかgotoはだめでbreakならいいというのは間抜け

322 :仕様書無しさん:02/11/17 12:13
プログラー

323 :仕様書無しさん:02/11/17 12:12
if文、ループ文自体を限りなくなくす方向で

324 :仕様書無しさん:02/11/17 12:21
どうせ機械語になった時点でジャンプ命令ばかりになるんだから気にすることなし

325 :仕様書無しさん:02/11/17 12:30
>>324
メンテしやすいかどうかが問題なんだろうが。
だからこそgotoを使うべきだといっているんだ。

326 :仕様書無しさん:02/11/17 12:33
スパゲッティ好きの>>325発見!

327 :仕様書無しさん:02/11/17 12:35
個人的には、1段上に抜ければ済む話はbreak使ってほしいなぁ。
gotoは、もっとネストを一気に抜けるときにしてくれた方が、
プログラマの意図が見える分ソース読みやすいよ。


328 :仕様書無しさん:02/11/17 12:35
ただclassを使えばいいと思ってるのですか?
下手なclassはgotoに劣ります。

329 :仕様書無しさん:02/11/17 12:39
2重ループ以上は禁止です。

330 :仕様書無しさん:02/11/17 12:42
>>328 誰もクラスとgotoの比較なんかしてないと思うんだが…


331 :仕様書無しさん:02/11/17 12:43
>>329 たとえ2重ループでも、中のbreakたどったら外のbreakだったら、
「ならgoto使えよ」って思うなぁ。

332 :仕様書無しさん:02/11/17 12:51
int i;
for(;;) {
 for(i = 0;i < 10;i++) {
  int x = rand() / 10;
  if(x == i)
   break;
 }
 if(i < 10)
  break;
}

333 :仕様書無しさん:02/11/17 13:05
>>277
前はやらなかったけど、今はその書き方してる。
関数名もパラメータの定数も長いのが多くなってきて、比較用の定数を後ろに書くと
何と比較してるのか、毎回ず〜〜〜〜っと後ろまで見なきゃならんからな。


334 :仕様書無しさん:02/11/17 13:30
>>332
主旨ズレるけど、一応簡素化努力してみるテスト

int x;
for (;;) {
 x = rand() / 10;
 if (0 <= x && x <= 9)
  break;
}

335 :仕様書無しさん:02/11/17 13:51
>>333
まあ、1回はやってみたくなるもんだな。早く帰ってこいよ

336 :仕様書無しさん:02/11/17 14:09
javadoc の @deprecated なコメントに オhル とだけ入れるのはよせ

337 :仕様書無しさん:02/11/17 14:10
>>335
趣旨が理解できてないバカ発見!


338 :仕様書無しさん:02/11/17 14:24
>>332
ナニ犯りたいんか判らんが、

int i;
do
{
  for(i = 0;i < 10;i++)
  {
    int x = rand() / 10;
    if(x == i)
      break;
  }
}
while(i>=10);

でええやん。 むやみに「for(;;)」とか「while(1)」使うヤシ嫌い。


339 :仕様書無しさん:02/11/17 15:57
>>338
なにげに「犯りたい」がおそらく変換第一候補なのにワロタ。

340 :仕様書無しさん:02/11/17 16:10
>338
そんなあなたにこんなスレ

職場でオナニー
http://pc.2ch.net/test/read.cgi/prog/1035986410/


341 :316:02/11/17 20:36
gotoの話ですけどね。
今のC言語の本にはもうほとんどかかれていないんですよ。

局面によってはbreakでなくgotoのほうがいいってのも、
それなりに納得はできるんですけどね、世の中の流れってのも
それなりに汲みとってください。


342 :仕様書無しさん:02/11/17 20:44
>>341
うそくせーな。

343 :仕様書無しさん:02/11/17 20:59
gotoが駄目ってのは言葉狩りと同じなわけで、
どんな使い方も出来るから素人にはお勧め出来ないわけで、
玄人は使って良いのである。

と思います

344 :仕様書無しさん:02/11/17 21:00
>>341
入門書はそろそろ卒業しましょうね。

345 :仕様書無しさん:02/11/17 21:06
vector<int> ((l)); //ハァハァ…(・∀・)マンコー

346 :仕様書無しさん:02/11/17 21:08
例外処理で、gotoを使えばすっきり書けるなら使います。
もっとも最近はC自体あまり使いませんが。

347 :仕様書無しさん:02/11/17 21:14
>343
で、玄人気取りが「自分にだけ分かりやすいコード」を書くんだね

348 :仕様書無しさん:02/11/17 21:15
insert into MAMKO;
insert into MAMKO;
insert into MAMKO;
insert into MAMKO;
insert into MAMKO;

349 :仕様書無しさん:02/11/17 21:21
drop from MYLIFE;
commit; -- bye!

350 :仕様書無しさん:02/11/17 21:23
>>348-349

SQL文でマターリと会話するスレはここでつか?

351 :祐一爆弾:02/11/17 21:36
やぁ、ぼく変態押金さん(*´∀`*)ノ
最近就活忙しくてMMOでPKできないやヽ(`Д´)ノ ウワァァン!!リアルで人殺してぇ!
赤沼精和荘には勘違い帽子ヤローから場違いロッカーがうじゃうじゃと。
1206号室の浜ヲタが音楽を聞いている、もう我慢できん
一日中つんく家族聞いてんじゃねーよ、うんこめ
喧 嘩 上 等


352 :316:02/11/17 21:49
>344
入門書はもう読まないけど。
数年前にこの業界はいったときにはgotoはいろいろと論争があって
いまからあえて使う物ではないってくだりがあった。
実際、gotoを使いましょう的なほんがあるのなら紹介してくれ。

その後、gotoについて見直しがされたわけでもないので、
今から学ぶ人はgotoを使おうとは思わない。
その中の流れを無視して理屈ばかりこねるのはやりずらい人です。

353 :仕様書無しさん:02/11/17 21:52
>>352
素人に毛が生えた奴が一番ウザイな

354 :仕様書無しさん:02/11/17 21:53
>>352
では具体的に何の本を読んでgotoについてかかれていないといっているんだ?
想像でものをいわないほうがいいぞ。

355 :316:02/11/17 21:53
みんなはじめはそうだろ。
そいつらがgoto使わなければなくなっていくんだよ。

356 :仕様書無しさん:02/11/17 22:01
>>355
意味がわかりませんが。
そいつらってだれですか?

357 :仕様書無しさん:02/11/17 22:08
>>353 剥同

358 :仕様書無しさん:02/11/17 23:57
goto使って流れが見えやすくなる可能性があるのであれば存在していていいのではあり
ませんか。私自身は>>321さんが言うように,ループの流れを乱すという意味ではbreakや
continueも気をつけて使わなくてはいけないし,だから気をつけてgotoを使うべき場面もあ
ると考えています。実際深いループから例外的に抜ける場合に,フラグとbreakの連続で
処理するよりも潔くgotoした方が読みやすくなる(逆にいえばgotoを使うのはそんなときく
らいしかない)というのは私がCを使い始めた頃からよく言われており,何度も活字で見て
います。それに対する有効な反論をまだ私は見たことがないので,あれば教えてください。


359 :仕様書無しさん:02/11/18 00:08
>>358
何ムキになってんの?
からかわれてるのがわかんないの?

360 :358:02/11/18 00:26
いや,ネタはネタとしてわきまえてるからご安心を。仕事中の息抜きでぼーっとしてたので,素で返してしまっただけです。>>359さん

361 :仕様書無しさん:02/11/18 00:51
 別に goto 使ってもいいとは思うが、ループ抜けるために goto は使わんなあ。
 例えば一つの処理の中で、途中で処理キャンセルするけど、後始末はしなきゃならない場合
(正常処理でも最後に後始末はする)ってときなら、後始末への goto は許容する。
 if 文でガードするのも無闇にネスト深くなるだけだし。

362 :仕様書無しさん:02/11/18 01:28
俺はCだったら
if ((p = malloc(size)) == NULL)
  return -1;
if ((fp = fopen(name)) == NULL)
  goto err1;
処理...
if ((q = malloc(size2)) == NULL)
  goto err2;
処理...
err2:
fclose(fp);
err1:
free(p);
return -1;
みたいなコード書いちゃうなあ。ifのネストにしてもいいけど、
深いインデント嫌いだからさ。例外使えれば楽だけど。

363 :名無しさん@Emacs:02/11/18 02:55
>362
そのコード、イヤすぎ。


364 :仕様書無しさん:02/11/18 10:37
>>362
ヲレだったら
result=ERROR;
if ((p = malloc(size)) == NULL)
 goto err;;
if ((fp = fopen(name)) == NULL)
 goto err;
処理...
if ((q = malloc(size2)) == NULL)
 goto err;
処理...
result=SUCCESS;
err:
free(q); /* freeは引数がNULLでも問題ない*/
if (fp) fclose(fp);
free(p);
return result;
だな。ラベルがたくさんあると見通しが悪いから、エラー処理のラベルは一つだけにする。

365 :仕様書無しさん:02/11/18 11:36
result=ERROR;
do {
 if ((p = malloc(size)) == NULL)
  break;
 if ((fp = fopen(name)) == NULL)
  break;
 処理...
 if ((q = malloc(size2)) == NULL)
  goto err;
 処理...
 result=SUCCESS;
} while(0);
free(q);
if (fp) fclose(fp);
free(p);
return result;

366 :仕様書無しさん:02/11/18 12:24
result=ERROR;
if (p = malloc(size) && fp = fopen(name))
{
 処理...
 if (q = malloc(size2))
 {
  処理...
  free(q);
  result=SUCCESS;
 }
}
if (fp) fclose(fp);
free(p);
return result;

367 :仕様書無しさん:02/11/18 12:34
p = malloc(size);
fp = fopen(name);
処理...
q = malloc(size2);
処理...
free(q);
fclose(fp);
free(p);
return 0;

368 :仕様書無しさん:02/11/18 12:52
>>367
一番美しい

369 :仕様書無しさん:02/11/18 12:56
どうでもいいが、>>362 のコードはいつでも -1 を返すな

370 :仕様書無しさん:02/11/18 13:41
>>367
free(NULL) は問題ないけど、fclose(NULL) は SEGV するぞ。


371 :仕様書無しさん:02/11/18 13:45
>>370
そーゆー問題じゃないのではと。

372 :仕様書無しさん:02/11/18 13:53
>>366
最初のmalloc失敗したら、fpの初期化は行われないんじゃないか?

373 :仕様書無しさん:02/11/18 14:02
>>372
そういう事は先に 364 に言えと。

374 :仕様書無しさん:02/11/18 14:07
>368
 美しいんじゃなくて手抜き……

>370
 そのまえに fopen 後の処理で p に対してアクセスしてて、SEGV で落ちるだろな、普通……


375 :仕様書無しさん:02/11/18 14:34
9 行スレはここですか?

376 :仕様書無しさん:02/11/18 14:39
>>365-366
p, fp はNULLで初期化しとく必要があるな。

377 :仕様書無しさん:02/11/18 16:10
  ∧_∧   
 ( ´∀`)< ぬるぽ


378 :仕様書無しさん:02/11/18 16:46
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V´Д`)/ ←>>377
 (_フ彡        /


379 :仕様書無しさん:02/11/18 16:48
>376
 必要ないよ。malloc も fopen も、失敗したら null ポインタ返すから。

380 :仕様書無しさん:02/11/18 16:52
>>379
mallocが成功してfopenが失敗する可能性を考えてから発言しような。
# p, fpはstaticかglobalな変数なら別だが

381 :379:02/11/18 16:52
スマソ。
町がいた。
365 は fp と q が NULL 初期化されてないので駄目だね。
366 は fp の NULL 初期化が必要だわ。

382 :380:02/11/18 16:57
間違えた。
p, fp 未初期化
 ↓
mallocが失敗(p = NULLとなる)
 ↓
fopen呼び出されない(fp未初期化のまま)
 ↓
fcloseが呼び出される可能性がある(fp != NULLである可能性が高い)
 ↓
fopenしてないfpをfcloseする
 ↓
未定義(マズー)

383 :仕様書無しさん:02/11/18 17:16
p と fp が未初期化かどうかは不明なんだが、何を熱くなっているんだ?

384 :仕様書無しさん:02/11/18 17:39
>>380
staticでもglobalでも2度目通ったときにマズーだろう。

385 :仕様書無しさん:02/11/18 19:11
このスレにいると、バグがなくならない原因でおなか一杯です。

386 :仕様書無しさん:02/11/18 19:48
メシ代浮いていいじゃん

387 :仕様書無しさん:02/11/19 00:17
C言語==ゴーカート
(C)祝一平

388 :XG(XhosaGaiters):02/11/19 14:38
intXG = CInt(Len(strPONum))


389 :コスモス:02/11/19 15:21
http://www.asahi-net.or.jp/~AN4S-OKD/private/jlb/jaindex.htm
ここにいろいろ出てるよ。


390 :コスモス:02/11/19 15:21
マチガエマシタ
スミマセンデシタ


391 :仕様書無しさん:02/11/19 15:33
>>388
どっかまずいの?

392 :仕様書無しさん:02/11/19 17:05
>>389
貴重なご意見ありがとうございました。

393 :仕様書無しさん ◆Rhvbchu7bg :02/11/19 17:11
>>388
StringのLengthは最大が Long値の範囲だったとおもうが。
何に使ってる文字列変数かわからんが、CIntはまずいかも。

394 :仕様書無しさん:02/11/19 18:51
Timer1.Interval = 10

395 :仕様書無しさん:02/11/19 22:31
>>391
Len()は整数値以外何で返るんだとキャストをかました奴に小一時間問いつめたいんじゃないだろうか?

396 :仕様書無しさん:02/11/19 23:23
>>394

……もはやVBコード自体がCOBOL並にイヤポでつか?
あるいはVBで10msecのインターバルなんぞ取るなゴルァでつか?
それともTimer1というデフォルトまんまな名前が……
あぁ分からん。

397 :仕様書無しさん:02/11/19 23:37
せめて、コメントで「10秒待つ」とか書いてあればわかるんだけどな >>394
まあ、世の中には説明一切なしですべてを理解してもらおうとするアフォも多いってこった

398 :仕様書無しさん:02/11/20 00:40
>>396
2つ目が正解でし。

>>397
あ、あの・・・
Windowsで10msのインターバルは無意味という定石を知らんのですか?
しかも10秒は「1000」と書きます。www

399 :仕様書無しさん:02/11/20 00:41
10000じゃなくて?

400 :仕様書無しさん:02/11/20 00:53
うん。
1000.

401 :仕様書無しさん:02/11/20 00:59
>394 のように Timer1.Interval = 10 と書くと 10msec になるのに、
10sec を指定するのに 1000 となるのですか? ホンマに?
どっかで1ケタ飛んでますか?


402 :名無し@宿無し:02/11/20 01:02
Winは奥が深いな(w

403 :仕様書無しさん:02/11/20 01:21
>>401
ごめん。
10000だった。(1000は1秒だな。w)
やめたくなるだろ?
こんなヤシが居る会社。w

404 :名無し@宿無し:02/11/20 01:25
思ったほど深くなかったか?(w

405 :397:02/11/20 01:32
>>398
あ、あの・・・
10msが定石なのに、10と設定してあるソースを見て会社を辞めようと思うのは
一体どういうことなのですか?
10を設定してあるのに10秒待つ、と書いてあるのなら辞めたくなるのも
わかるけど、394は一体何が不満でここに書いたのか、、、、


と思ったけど、 >>400でやはりアフォだということがよくわかりますた。

406 :仕様書無しさん:02/11/20 01:32
結構、深いかもよん♪

407 :403:02/11/20 01:36
>>405サソ
> 10msが定石なのに、10と設定してあるソースを見て会社を辞めようと思うのは
> 一体どういうことなのですか?
ごめんなさい。
言ってることが「全然・全く」わかりません。w

408 :仕様書無しさん:02/11/20 01:38
( ゚Д゚)y-~ 別に深くねーよ。

409 :仕様書無しさん:02/11/20 01:44
>>408
正解!(もんた風)

410 :391:02/11/20 02:24
>>395
一言注意して終わり、でいいんじゃないかと思ふ。
てか、これ実はC++でコンストラクタの部分というオチだったり...


411 :403:02/11/20 04:13
すみません、意味やっとわかりました >>405


412 :仕様書無しさん:02/11/20 09:07
ソースきぼん<定石

413 :仕様書無しさん:02/11/20 11:13
char s[] = "ABCDE";
char *str;
str = s;

年上:「↑をまとめて書くこと」

char *str = "ABCDE";

私:「はあ?」

414 :仕様書無しさん:02/11/20 11:26
>405
 Windows 9x 系列が保証する最低スライスタイムは 55ms。
 NT3.1 で 16ms。
 NT3.5 以降で 10ms。
 だからそれより小さい値を指定しても、無意味ってこと。仮に >394 のソースで作られる
プログラムが 9x 系列上で実行されたら、10ms 単位でタイマ起動する保証がない。
 そもそも WM_TIMER は「とりあえず指定した以上の時間が経過しましたよ」って意味しか
持ってないから、間隔を期待してはいけないけどな。

415 :仕様書無しさん:02/11/20 11:50
つか10msが定石って何?初めて聞いたんだけど。

416 :仕様書無しさん:02/11/20 12:02
それより
>Windowsで10msのインターバルは無意味という定石

>10msが定石
に変化する過程を教えてくれ。意味かわっとるやんけ。

417 :仕様書無しさん:02/11/20 12:53
>414
勉強になります

418 :仕様書無しさん:02/11/20 12:56
実は、Timer1は、マルチメディアタイマだった。

419 :仕様書無しさん:02/11/20 13:02
> NT3.5 以降で 10ms。
なら、
>Windowsで10msのインターバルは無意味
にはならんのとちがう?
それに、プロセッサってだいたい暇してるから、
だいたい10msの間隔で来るんでないの?
いかなる時もきっちし10ms間隔で来てホシイなら
また話も変わるけどさ。

420 :仕様書無しさん:02/11/20 13:03
自分のソース調べてみたら、SetTimer で 10ms 指定してるとこがあった
ウィンドウができあがった後で最初に一度だけ処理したいことがあるからなので、
WM_TIMER ですぐにKillTimerしてるし、時間に意味は無いんだが
なぜ 10ms にしたのかは今となっては不明だ…

421 :仕様書無しさん:02/11/20 15:06
タイマー値に 1 を指定しても 55 を指定してもさほど効果に違いが無いのなら、
10 と指定するのが何で DQN なのかわからん。
つまるところは 414 の最後 2 行に集約されてるけどな。

422 :仕様書無しさん:02/11/20 15:14
精度が欲しいんならパフォーマンスカウンタ使えばいいんじゃ

423 :仕様書無しさん:02/11/20 15:28
精力が欲しいんですけど

424 :仕様書無しさん:02/11/20 15:31
>421
 10 と 55 だから問題が……
 極端な話、2000/XP じゃちゃんと 1/10 単位で計測できるのに、ME だとできないぞ! って
トラブルが起こりうる罠。そういう用途で WM_TIMER 使う香具師が悪いのだが(w

 そういえば Windows XP だと WM_TIMER に絡む「497日問題」があったな……

425 :424:02/11/20 15:37
すまそ、変だな。
「1/10 単位」→「10ms 単位」に謹んで訂正。

426 :仕様書無しさん:02/11/20 16:14
>>424
だからさ、

> そういう用途で WM_TIMER 使う香具師が悪い

という事がある限り、10 と指定するのが何で DQN なのかわからんのだ。


あと、497 日?
49.7 日なら聞いた事あるが・・・。

427 :424:02/11/20 16:27
>426
 MSDN KnowledgeBase で WM_TIMER で検索してみ。
 一番上に出てくるから(w

 察するに、10ms 単位でカウントアップする 32bit の内部カウンタがあるんだろう。
んでこいつがラウンドアップするのが 497日で、0 に戻るとタイマイベント自体が発
生しなくなる(0は使用していない、と扱うとかやってんだろーな)トラブル、と。

 トラブル原因としては49.7日問題と同じってとこが MS の学習力のなさを表してい
て ウマー ですな(w

428 :仕様書無しさん:02/11/20 16:40
おいおい、それってWindows2000では大丈夫なのか??
激しく困るんだが。

429 :仕様書無しさん:02/11/20 16:45
>>428
毎年元旦に再起動すれ(w


430 :仕様書無しさん:02/11/20 16:46
>>427
ありがとう、これでまた 1 つ賢くなったよ。
ところで、↓ は?

> > そういう用途で WM_TIMER 使う香具師が悪い
>
> という事がある限り、10 と指定するのが何で DQN なのかわからんのだ。

反論が特に無いところをみると、単なる重箱隅と解釈していい?

431 :仕様書無しさん:02/11/20 16:49
http://support.microsoft.com/default.aspx?scid=kb;ja;JP323328
修正されてるみたいだけど、単にカウンタを 64bit にしただけかな。

432 :仕様書無しさん:02/11/20 17:40
>>419,421,424,426,430
Windowsで高精度のタイマーが欲しければマルチメディアタイマをつかうわけだが、
これはコールバックで呼ばれるんであって、WM_TIMERなんてメッセージは投げてこない。
そもそもそんなにリアルタイム性を要求するなら、マルチメディアタイマのコールバック関数から
さらにSendMessageなんて迂遠なことをしている暇はないはずだ。
(WindowsそのものがリアルタイムOSじゃないぞ、ってな議論はとりあえずおいておく)

WM_TIMERを10msの時間待ちに使うような香具師はMSDNを100回読み返せ。
あ、このスレの趣旨に添うなら、とっとと辞めれ。


433 :仕様書無しさん:02/11/20 17:48
>430
日本語読解能力が無いのか?

10ms間隔で処理が実行される保証が無いのにそれを期待して
10msを指定するならそりゃDQNってこった.
あくまでそれを期待してってところな.

聞くが、10msと指定しても55msで動作する(かもしれん)のを承知の上であえて
10msで指定したいのか?なぜ?



434 :仕様書無しさん:02/11/20 17:54
>>433
なるべくたくさんアレをしたいから。

てのじゃダメ? 環境によっては一定時間にアレできる回数が増えるんでしょ。

435 :仕様書無しさん:02/11/20 18:13
>428
 MS に何を望む?
 つか、XP って所詮 Windows NT 5.1 やん(w

 もし 2000 で問題ないならば、じゃあ XP でなんでそんなエンバグするかと小一時間……

436 :427:02/11/20 18:28
>434
 なるべくたくさん、なら Thread 使えって(w
 きっちりした時間間隔で何か処理したいならマルチメディアタイマを使え。
 それ以外(てきとーに待つ、ぐらいの感じ)でなら WM_TIMER でもよい。

 正直、一秒単位でさえ WM_TIMER だと遅れる危険があるし(特に 9x 系の場合)。

437 :仕様書無しさん:02/11/20 18:30
だから、てきとーに10ms待つのにWM_TIMERつかった香具師は
DQNなのか、って話だろうが。

438 :仕様書無しさん:02/11/20 18:54
日本語読解能力疑われちゃったよ・・・。

>>394 からは、10ms きっかりを待つことを期待しているという前提が全く
うかがえないのだが。
だから、仮に 10 が設定してあっても、それをたちどころに DQN と決めつ
けるのはおかしい、と言っているんだってば。

434 の可能性もあるわけだし。

439 :仕様書無しさん:02/11/20 19:19
>>435
それが、起こるからこそMSなんだよん。 XP上のエクスプローラで「フォルダ」に
「読取専用」属性がセットできるか試してみろ。

2000でも「フォルダのみ属性変更するか、フォルダ以下の全てのファイルに属性を
適用するか」を聞いてきてちゃんと指定したとおりに属性を変更できるが、XPでは
これがなんと動かんのだよ、キミ。

漏れも、なんでそんなエンバグするかと小一時間問い詰めてやりたいよ。
(判らんのは、コードをいじった香具師もそうだが、何人と金払って雇った
テスタ連中がいったい何をテストしてたのかってこと)

440 :仕様書無しさん:02/11/20 19:21
>>394さんはそのソースを見て「この会社辞めよう」と思ったわけです。
つまり「Intervalに10なんか設定してあほだなぁ」と思ったわけです。
もし10msきっかりが欲しいのならどっきゅんだし、10msきっかりでなくてもいいなら後からソースを読んだ人を悩ませるような、必然性のない「10」の指定はどっきゅんだと皆さんは思っているのでは?

434だったら1msにすれば良いわけで。

441 :仕様書無しさん:02/11/20 19:25
あー盛り上がってますねー。

442 :bloom:02/11/20 19:27

http://www.agemasukudasai.com/bloom/

443 :仕様書無しさん:02/11/20 19:34
>>440
何となく了解した。

444 :435:02/11/20 19:35
>439
 そういやそだな(w

 どっちにせよ MS = DQN ということでよろしい罠。
 まあエンバグは前例山ほどあるしなあ……NT の SP4 で直したバグ(っつーか
お得意の「仕様」)が 2000 で復活してたりするし。

445 :仕様書無しさん:02/11/20 19:38
ファイルのフルパス入れる変数が
strDirPassってなってたんだけど…

いいのかなあ。

446 :仕様書無しさん:02/11/20 19:54
>>445
"うに" よりマシだろう。

447 :仕様書無しさん:02/11/20 21:01
>>413
1-412/414-999 「はあ?」

448 :ちょっと一言:02/11/20 21:39
467 名前:コスモス 投稿日:02/11/20 11:46
理由その2:
SQLが嫌いです。(というかSQLの存在意義って?)

SQLというのはRDBを扱うための専用言語のようなものですよね。
さらに埋め込みSQLというものまであります。
埋め込みSQLはCやVBなどのプログラム中にSQL文を直接書けて、しかも変数
にselectの結果を代入したりできるという、話だけ聞くと非常に便利そうな機能に
見えます。
機能というよりメタ言語ですね。(笑)

その埋め込みSQLですが、はっきり言って設計した人の神経を見たいです。
そもそもSQL自体まるでナンセンスな言語だと思っていましたが、埋め込みSQL
はさらに輪をかけて。。。
ちょっと凝ったことをしようと思うとすぐ壁にぶち当たります。

誰が考えたか知りませんが、「お願いです。今後2度とプログラミング言語を設計
しないでください。世のため人のために。」(大笑)


449 :仕様書無しさん:02/11/20 21:47
E.F.Coddに言え>448

450 :仕様書無しさん:02/11/20 21:51
>>447
代表乙。
でも、1000 は入ってないのね。

451 :仕様書無しさん:02/11/20 21:56
>>440
最低でも 10ms以上待たせる必要があるから こう設定してる、
と好意的に現実的ではない解釈をしてみる。

452 :仕様書無しさん:02/11/20 22:08
ていうか、SQLをCみたいな手続き言語と比較してること自体がダメ。
SQLって要は論理代数でしょ。


453 :仕様書無しさん:02/11/20 22:20
>>439
そのバグって常に如何なる状況でも発生するの? たまたまじゃなくて?
もしそうならなんでテストを通過するの?


454 :仕様書無しさん:02/11/20 23:09
>>452
ネタじゃないのかなあ。

埋め込みSQLでどんな「ちょっと凝ったこと」をしようとしたのかは気になる

455 :仕様書無しさん:02/11/20 23:58
「適当な値」でいいところに10というマジックナンバーを
入れたのならその旨コメントしとかないと困るよね…。

456 :仕様書無しさん:02/11/21 00:33
>>455
それまずいよ。どう適当かと突っ込まれるぞ。
「いい加減」がいいと思われ。

457 :仕様書無しさん:02/11/21 01:28
良い加減ならいいじゃん。何が問題あるの?

458 :仕様書無しさん:02/11/21 01:41
>453
 決まってるじゃないか。
「誰も想定してテストしてませんでした」
だよ。
 んで問題だと分かると、「仕様ですから」の一言で黙殺。さすが MS。

#一度でいいから客に対してやってみたくはあるな。後先考えなければ。

459 :仕様書無しさん:02/11/21 02:02
あー、1日経ったら随分とタイムスライス盛り上がってたんですねー
すいません。

>>414サマ >>416サマ
わかって頂いてありがとうございます。

>>416サマ
正解です。

ソースコードの読解より、>>405サソ は日本語読解能力を
身に付けてください。

まぁ、何にしても50ms以下で、タイマを指定して、
客に「動いてます」って言ってたからさー
びっくりしたよ。マジで。

ちなみに >>411 はわたしじゃないですよ。


460 :仕様書無しさん:02/11/21 02:05
粘着だなあ・・・・ 友達いなさそう

461 :仕様書無しさん:02/11/21 03:13
年齢を格納する変数 age のコメントが・・・

462 :仕様書無しさん:02/11/21 05:51
>>448
お前はメタ言語という言葉の意味を知っているのかと小一時間…

463 :仕様書無しさん:02/11/21 07:51
448みたいな香具師がいる会社なら辞めたくもなる罠

464 :仕様書無しさん:02/11/21 10:27
>>448
> 「お願いです。今後2度とプログラミング言語を設計
> しないでください。世のため人のために。」
SQLってプログラム言語じゃないんだけど...


465 :◆ItkaRMAJ7. :02/11/21 10:59
むしろ、SQLの仕様を統一して( ゚д゚)ホスィ

466 :仕様書無しさん:02/11/21 11:08
(・∀・)イヤダ!!

467 :◆ItkaRMAJ7. :02/11/21 11:12
ヽ(`Д´ )ノ ウワァァァァァン マタクルヨー

468 :仕様書無しさん:02/11/21 11:26
ところで、誰か私に>>413の真意を教えてください。

469 :仕様書無しさん:02/11/21 11:42
>>468
確保されるメモリの違いでしょ。

char s[] = "ABCDE";
char *str;
str = s;

では char 型の配列(要素数6)と文字定数("ABCDE")と char* 型の変数
分のメモリが確保される。

char *str = "ABCDE";

では char* 型の変数と文字定数("ABCDE")分のメモリが確保される。


470 :ちょっと二言:02/11/21 11:43
472 名前:コスモス 投稿日:02/11/20 12:01
まとめ:
Oracle以外データベース製品はたくさんあります。
にもかかわらずなぜみんなOracleなのか?
Informix、DB2などなど。あ、SQL Serverは論外ですよ。(笑)
なぜこれらの製品はそんなにシェアがないのか?

最近思うのは、もしかしたらこれらの製品はOracleよりももっとひどいのかも
しれないと。。。(涙)

データベース業界ではOracleが一番使いやすく性能も出る製品なのだと思い
ます。
データベース業界はまだまだ未成熟な業界だと思います。
これを読んで、「そんなことないよ。Oracleっていいデータベースだよ」と思った
あなたは、Oracleに洗脳されているだけではないでしょうか。

471 :仕様書無しさん:02/11/21 11:45
>>469
コンパイラによってはまずいことになるかもしれない罠。
とはいえ漏れもあまり意識したことはないが。


472 :仕様書無しさん:02/11/21 11:49
>>470
> Informix、DB2などなど。
なんでMy SQLとかPostgreSQLが出ないかな

473 :仕様書無しさん:02/11/21 11:53
>>471
char *str = "ABCDE";

を Read Only で使う分には問題ないでしょ。
書き換えた場合の動作は禿げしく未定義。

普通は
const char *str = "ABCDE";

とするような・・・


474 :仕様書無しさん:02/11/21 11:54
>>472
PC-UNIX を使わない環境?

475 :仕様書無しさん:02/11/21 11:57
>>413
すまん、俺もこの年上氏のように書いてる。
初期値が欲しいがポインタ型として確保して置きたいもの(引数とか)で使ってる。
これがダメってことは
  while(*p++="ABC"[n++]);
とかもダメってことか・・・

476 :仕様書無しさん:02/11/21 12:02
If Long_Maisu > CLng(30) Then
MsgBox "枚数オーバーです。"
Exit Sub
End If

氏のう。。。

477 :仕様書無しさん:02/11/21 12:04
>>475
初めて見ました・・・

初心者にも分かるように、書き替えてもらえませんでしょうか?

478 :仕様書無しさん:02/11/21 12:22
hoge=COMPUTE(a,"+",b);

なぁ、
hoge=a+bじゃダメなのか?
そもそもCOMPUTEって何よ?

479 :仕様書無しさん:02/11/21 12:23
>>475
これが動く環境ってあるの?

480 :仕様書無しさん:02/11/21 12:23
>>475
  char *str = "ABCDE";
だと *str が書き換え可能かどうか判らん、て事を言いたいんじゃ?

>>477
  char *abc = "ABC";
  for (; abc[n] != 0; p++, n++)
    *p = abc[n];

481 :480:02/11/21 12:25
被ってんじゃん…打つだ篠。

482 : :02/11/21 12:37
>>470

あらてのセールスかい?

483 :仕様書無しさん:02/11/21 12:49
>>475
while (*p = "ABC"[n++]); なら意味わかるが。

484 :仕様書無しさん:02/11/21 13:12
>>483
それでは配列pには\0しかならないのでは?

485 :仕様書無しさん:02/11/21 13:26
>>484
え゛?

486 :仕様書無しさん:02/11/21 13:28
配列でしたか・・・

487 :仕様書無しさん:02/11/21 13:31
つーか、そんなトリッキーな書き方辞めてください。

488 :484:02/11/21 13:32
あ、ごめん配列って言葉は違ったかな。
でも*pが必ず'\0'になっちゃうような気がしたから

489 :sage:02/11/21 13:39
call timer
timer:
mov cx,0
loop$
loop$
.
.
ret

だって、はぁ〜〜〜(アセンブラでスマソ)いやだ!!

490 :仕様書無しさん:02/11/21 13:43
>>489
for(timer = 10; timer; )
;
つーのもあるよ。





491 :仕様書無しさん:02/11/21 14:45
>489 はsageたかったんだろうか…


492 :仕様書無しさん:02/11/21 14:58
>>413

これは、年上氏が上の三行を下の一行にしたという意味なのですか?
上と下が同じものだと思ってるなら、年上氏もちょいとアレなんだが、

・strを読み取りでしか使わない場合、下でOK。
・sを変更したいのであっても、strにポインタ値をコピーする必要は無い。

ので、どっちにしろ会社辞めるほどひどいコードではないような。

493 :仕様書無しさん:02/11/21 16:36
>>475
>>480
おまえらはなんでnを初期化しませんか。
特に>>480、おまえだおまえ。for使ってるのなら、

  for (n = 0; abc[n] != 0; p++, n++)
    *p = abc[n];

ってやりませんか。やりましょうよ。やってください。おながいします。

494 :489:02/11/21 16:48
>491 そうです、sageのつもりが、、、

しかし、loop $ねぇ〜クロックかわれば、
ソース変更ってか!!

495 :仕様書無しさん:02/11/21 17:13
性能で言えば Oracle よりも Teradata の方がいいが。

496 :仕様書無しさん:02/11/21 17:14
>>475 ほか
も前ら、ネタはいい加減にしる。
while(*p++="abc")でいいだろが。

497 :仕様書無しさん:02/11/21 17:15
>>496
それじゃダメだ。こうしろ
while(*p++="abc"++);

498 :仕様書無しさん:02/11/21 17:16
まぁ487が正論を述べたわけだが。

499 :仕様書無しさん:02/11/21 17:17
n++["ABC"] でいいじゃん。

500 :仕様書無しさん:02/11/21 18:14
つーか、

char *p;

strcpy(p, "ABC");

501 :仕様書無しさん:02/11/21 18:24
>>500
p初期化されてねーよ

502 :仕様書無しさん:02/11/21 18:32
char *p; を書かなければ正解だったのに・・・。

503 :仕様書無しさん:02/11/21 19:00
>>500-502
いや、やはり>>475は1文字ずつ取り出したかったのでは?
それで>>483につながると。












てか、ネタか?ネタに釣られちゃったのか?

504 :仕様書無しさん:02/11/21 19:07
セミコロン付きの while で、1 文字ずつも何もないと思われ

505 :仕様書無しさん:02/11/21 20:40
セミコロン・・・鬱

506 :仕様書無しさん:02/11/21 20:44
>>487
トレッキーな書き方ならいいですか?

# Beam me up!


507 :仕様書無しさん:02/11/21 20:53
トロッキーな書き方なら。

fromニュー速+

508 :仕様書無しさん:02/11/21 20:58
ケロッピーな書き方なら。

<!--
   ゲロゲロ ゲロゲーロ
-->

509 :仕様書無しさん:02/11/21 21:38
char *p;

p=strdup("ABC");

510 :仕様書無しさん:02/11/21 22:20
p=coredump("ABC");

511 :仕様書無しさん:02/11/21 22:39
>>506-508
オマイラ,ネタを披露し合うスレじゃないですよ

512 :仕様書無しさん:02/11/21 22:46
>>470

とりあえずDB2は鬱を加速してくれます。
ぶっ倒れてプロジェクトを抜けたい人にはお勧めの逸品。

513 :仕様書無しさん:02/11/21 23:06
p=Lotus("123");

514 :仕様書無しさん:02/11/21 23:15
Sybaseな俺…鬱だ

515 :仕様書無しさん:02/11/22 01:55
MDBですが何か?

516 :仕様書無しさん:02/11/22 07:27
GDBですが何か?

517 :仕様書無しさん:02/11/22 09:47
ADBですが何か?

518 :仕様書無しさん:02/11/22 12:59
dbmですが何か?

519 :仕様書無しさん:02/11/22 13:11
DQNですがな


                  いや!ちがうちがう!! ネタだネタ!!!!!

520 :仕様書無しさん:02/11/22 17:16
>519
そんな謙遜するなよ

521 :仕様書無しさん:02/11/22 17:20
>>519
(・ロ・)ホ,('ロ')ホ--ッッ!!!…

522 :仕様書無しさん:02/11/22 20:22
        ,,  -=-─=r-‐-、-、ニ"ニー-、 ,,
      r-! ヽ'",,=ニニ-‐'''"``'''ー==ヽ`>'" レ、
      i i.  >           `V  i  レ、
     ,r''''ヽ>,r' .,' ,. , , ,   ,.   ,.  ヽ, //, /
    <,,____i,/ , ,' ,' ,' i i   ,' ,'、_, ', ', '"、) ヽつ
      /,/ !.,' .i ,'-ナフ',', ',. /i7'ヽi;''i、,. ! ',`'r-;'"
     i,,,i i i ',.ヽi`'"'   ` `     '"i ,'/ ! i ',   >>519 まあ、あなた
      ''"7'>iヽ',.-‐''''''  ,   '''''‐-i/i ',ヽ,,i`'
       ,/,/ /ヽ',.    ┌‐┐   ./ノ  ',   
    ,,,_ /'、`、'-i. ヽ、,.  '、_,ノ  ,.r'" ,' _,r'7、_ _  DQN さんなのね♥
    \\ '、 '、 >ー-,r'`'ー--‐''"/  ,r'/ / ,r''/
   ./ .>,ヽ,(`''ー,-'_,i``(,, i,,)',/ .,' ,;,,/-',// `、
  /,,=''" ( ̄`)ー ',7,.i   i i ,' ,' ,./ .,r‐''''")`=;;、 ',
  /',    ( ̄``)  .)」  (_), / ,' i   ,>‐''"ノ  `=;',
 .! /、  ,,...r'( ̄`' /、、,,_  i.i.i i i/ ', /"` /、.     >'
 i. i i \/ ,\. /`i``''=;'' ! `i.ii="!.''---'" .'、,_,r''".i
 .! i '!. /i,'ー'''i  `" ./   'i : i"'  ',  ト、_. _/>, /i./
  ',i >/ `'"i '、,,,,__/.     i !    ',,,_,,i iヽ;/,'i" i'
     !   `フ''''i )`'i   i !   r-/ /;'    i

523 :仕様書無しさん:02/11/23 04:21
マイルドに煽られているな(w

524 :仕様書無しさん:02/11/23 08:54
>480
コンパイルオプションで指定できたかもしれん。

まぁ、C言語って元々効率の為に安全性を犠牲にしてる言語だから
わかってやってるんだったらいいんじゃない?


525 :仕様書無しさん:02/11/23 08:58
★OJTにて先輩からのアドバイス
strncpy() を使って文字列をコピーするとき、
直前にコピーした文字列の長さより短い場合は
その文字列の長さ分、配列を進めないとメモリがおかしくなるから云々・・・

char buf[1024];
for (i = 0; i < 1024; i++) buf[i] = '\0'; /* ←★意味ねー★ */
strncpy(buf, "first", strlen("first"));
/* process... */
strncpy(buf, "second", strlen("second"));
/* process... */
buf = buf + strlen("second"); /* ← ★こうしないと★ */
strncpy(buf, "third", strlen("third")); /* ← ゴミがつくんだって★ */
/* process... */

みんなに啓蒙しています。こんな先輩をもって恥ずかしいです。

526 :仕様書無しさん:02/11/23 09:02
文字列バッファを毎回\0クリアする人がなんでこんなにあちこちに
はびこってるのかしら。理由がヨクワカラン。

527 :仕様書無しさん:02/11/23 09:04
>>525だけど
>for (i = 0; i < 1024; i++) buf[i] = '\0'; /* ←★意味ねー★ */
このソースの場合だと必要だね。

文字列の終端に '\0'を付加することを知らない先輩の話です。


528 :仕様書無しさん:02/11/23 09:05
>>525
> buf = buf + strlen("second"); /* ← ★こうしないと★ */

bufは配列名だから左辺値ではない筈だが?


529 :仕様書無しさん:02/11/23 09:09
>>528
ごめん。間違ってたね。

イメージ的には先頭アドレスをずらしていくやり方。

530 :仕様書無しさん:02/11/23 09:57
つーか、まず
memset(buff, 0, sizeof(buff));
って書けよな。クリアしたいなら。>先輩
#core読む予感がする場合は、クリアしておく場合も無いわけではない。

531 :仕様書無しさん:02/11/23 10:00
まぁ >>525 みたいな出鱈目な例は実在するわけだが。

532 :仕様書無しさん:02/11/23 10:08
で、藤原博文読んで感激して、バッファオーバーランさせると。

533 :仕様書無しさん:02/11/23 15:55
このスレで学べたこと。
藤原博文はネタじゃなかったということ。


534 :仕様書無しさん:02/11/23 17:29
ミスター高橋 衝撃本 第2弾!『マッチメーカー』
関係者は激怒!「またか!!」
11月25日発売予定
定価 $1,400

535 :仕様書無しさん:02/11/23 17:35
#define UNDEF NULL

536 :仕様書無しさん:02/11/23 18:05
COMPUTE I=2.
LOOP.
COMPUTE I=3-I.
GO TO LOOP.

537 :519:02/11/23 22:29
>>520-523
サンクス。泣けたよ・・・・・・・・・・

538 :仕様書無しさん:02/11/24 00:29
>>528
たまにはそうではないと言い張るコンパイラも居るが、配列変数は左辺値だから
よろしくな。

539 :仕様書無しさん:02/11/24 01:07
536 のコードは一体何がやりたいんだ?

540 :仕様書無しさん:02/11/24 01:12
会社つーか業界脱出したくなったコード。

#define ERROR 0
(wingdi.h内)

こんなよく使いそうな名前をdefineしっぱなしにするんじゃねーよM$。
おかげでenumのコンパイルエラーに30分頭痛めちまった。

541 :仕様書無しさん:02/11/24 01:44
double a = 1.5;
int i = ( int ) a + 0.5;

として何で結果が1になったり2になったりするのか悩んでてしまいには
コンパイラのバグのせいにする香具師がいる....

542 :仕様書無しさん:02/11/24 01:54
基本情報処理技術者試験を受けさせろ。

543 :仕様書無しさん:02/11/24 01:55
>>542
AE持ってるけどわかりません(藁

544 :仕様書無しさん:02/11/24 01:56
>>540
ぐは。知らんかった。
しかもERRORなのに0ってところがまた…

MSのプログラマでもやっぱピンキリなんだな。
つか、レビューしてねーのかよ。

545 :仕様書無しさん:02/11/24 02:10
>>544
Win32APIみてみそ。たいていエラーはFALSE(==0)で示されるから、ERRORが0だと思われ。
例)WriteFile, ReadFile, っていうか、GDIならBitBlt、MaskBltとかいくらでも。
まあ、だからといって、そのdefineは肯定できないが。

546 :仕様書無しさん:02/11/24 03:16
でも、emun に ERROR なんて使うかなあ・・・?

547 :546:02/11/24 03:16
スペルミス吊ってくる・・・

548 :仕様書無しさん:02/11/24 06:02
http://dempa.2ch.net/gazo/wara/img-box/img20021030112756.jpg

549 :仕様書無しさん:02/11/24 06:38
>>548 わらた

550 :仕様書無しさん:02/11/24 06:49
すげー

551 :仕様書無しさん:02/11/24 06:59
>>541
1.5 も 0.5 も IEEE 浮動小数でそのまま正確に表せるのに 2 にならないの?
3 * (1.0 / 3) が1になるかどうかとかだったらあれだと思うけど。
・・・Intel の FPU が計算するたびに 80bit に変換するせい?

552 :仕様書無しさん:02/11/24 07:33
>>551
好意的解釈だが、1.5 は本当は定数じゃなくて、何かの計算の結果だろ。
それを四捨五入してる。

553 :仕様書無しさん:02/11/24 07:39
念のために聞くが、キャストと加算演算子の優先順位は知ってるだろうな?

554 :551:02/11/24 08:02
>>553
言われてみれば(苦笑)
ただその場合は必ず1になりません?

555 :仕様書無しさん:02/11/24 08:10
>>554
> ただその場合は必ず1になりません?

逆に、これが1にならないコンパイラがあったら教えてくれ。

556 :仕様書無しさん:02/11/24 08:12
暗黙的型変換も考慮してくれ。コンパイル通んないよ。

557 :552:02/11/24 08:51
>>553
しまった吊ってくる・・・

558 :仕様書無しさん:02/11/24 10:13
俺はガンダムでアムロの父親がアムロにこれをガンダムにつければパワーアップするってわたしたとき、本当にパワーアップするって信じてたぞ。
実はあれは本当にパワーアップする装置だったといまでも信じている。

559 :仕様書無しさん:02/11/24 10:29
>558
「この会社辞めようと思った回路図」?

560 :仕様書無しさん:02/11/24 10:43
>558
おれもだよ。
何でこわしちゃうんだ!?アムロ!

って胸が痛んだのを覚えてる。

561 :仕様書無しさん:02/11/24 11:03
昔いた会社で、その会社が数年まえに外注して受け取ったコードというのを
見て愕然としたよ。i, j, kがグローバル変数になっていた。推測するに、その
コードを書いたヤシはN88-BASICあがりで、関数=サブルーチンという程度の概念
しかなかった。よって変数は、みなグローバルにするしかない。
もちろん、バグだらけで使い物になりませんでした。

こういうコードを出してくる会社も会社だが、そんなものを受け取ってしまう側は
もっとタチが悪いと思ったYO。だから、資本金が8000万円あっても債務超過に
なっちゃうんだろうな。


562 :仕様書無しさん:02/11/24 11:11
>553
優先順位に左右されないコードを書くほうが可読性が高まることもあって
賢いやりかただと習いました。よっぽど処理速度を求められない場合以外は、
その教えに倣っております。

563 :仕様書無しさん:02/11/24 11:23
>>562
意味不明です。
優先順位と副作用を混同していませんか?

564 :仕様書無しさん:02/11/24 11:26
>>561
意味不明です。

565 :仕様書無しさん:02/11/24 11:27
優先順位でハマるのが嫌なので、必ず()で括るようにしてます。

566 :仕様書無しさん:02/11/24 11:39
可読性がよくなるかどうかは疑問だが、

567 :仕様書無しさん:02/11/24 12:23
void Hoge(const char *p)
{
  char c;
  c = *p++;
   |

で、c = *p++ を「できない」と言ってくるバカタレコンパイラをどうにかしてください。



568 :仕様書無しさん:02/11/24 12:28
>>560
技術者としては、理解できんでもないな。
自分が一番ガンダムのシステムに精通しているはずなのに、
突然親父が古い部品だけで上手にパワーアップサブシステムを
構築したんだから。

まぁ、親父で良かったよ、フラウが作ってアムロに渡してたら
アムロのプライドは地に落ちて発狂したかも。

569 :仕様書無しさん:02/11/24 14:31
Gundam Seedが放送中ですよお前らども。
絵がどんどんアニヲタ向けになってきてるのは気にしてはいけませんよ。

570 :560:02/11/24 16:09
>568
いや、俺幼かったから親父の頭がいっちゃってることに
気がつけなかった。

>569
気にします。
あんなの書かずに初代ののりで書いたほうがいいし、それで充分採算とれると
思うのは30代前後のガンダム世代だけですか?

571 :仕様書無しさん:02/11/24 16:29
Gandumだろ?

572 :仕様書無しさん:02/11/24 16:40
オガンダムというのもあったな。

573 :仕様書無しさん:02/11/24 16:42
>>567
バカタレ。

574 :仕様書無しさん:02/11/24 16:44
GUNDOMですが何か?

575 :SE型Sun四郎:02/11/24 16:45
3度の飯よりクソスレを愛し自他共にハードボイルド系クソスレ愛好家との呼び声もベリーハイヤーな俺の記憶が確かならば
コロコロコミック屈指の名作キンタマンから生まれたオガンダムはサンライズからのクレームによりバカラスに解明された模様であり
単行本では登場からバカラスに改名されており今ではオガンダムの名を知るナイスガイは少ないと思われる

576 :仕様書無しさん:02/11/24 16:58
これか。
ttp://www2s.biglobe.ne.jp/~ryuseik/ogandam.htm

577 :仕様書無しさん:02/11/24 17:00
575 を略すと、3コロガンダム という事か?

578 :仕様書無しさん:02/11/24 17:17
どうレスしていいかわからん

579 :仕様書無しさん:02/11/24 17:19
>>578
とりあえず、この会社辞めようと思ったソースコードを晒すべし。

580 :仕様書無しさん:02/11/24 17:46
急にブッ壊れて治ったら別の名前になってて
子供心ながらヘンだなあと思ったよ

581 :仕様書無しさん:02/11/25 01:17
>>567
関数の引数って変更できること保証されてたっけ?

582 : :02/11/25 02:01
constだし

583 :仕様書無しさん:02/11/25 02:06
>>581-582
おまえら、大丈夫か?

584 :仕様書無しさん:02/11/25 02:28
>>581 は言語道断だが
>>582 あーあーやっちゃった・・・ひっかかるなYO

585 :仕様書無しさん:02/11/25 04:38
Hoge(char *p)
Hoge(const char *p)
Hoge(char * const p)
Hoge(const char * const p)

586 :仕様書無しさん:02/11/25 08:47
まっとうな生き方をしてれば裏社会を知らなくても生きていけるように、
妙なコードを書かなきゃそんなことで悩む状況に陥らないと思う。

知ってて損は無いけどね。

587 :仕様書無しさん:02/11/25 08:52
知識をひけらかすために特異なコードを書くヤシ
他人が迷惑するんだYO

588 :仕様書無しさん:02/11/25 08:58
>>587
*p++ = *q++とか?

589 :仕様書無しさん:02/11/25 09:29
>>588
それはふつう定型句として憶えてないか?

590 :仕様書無しさん:02/11/25 09:30
>>586-587
特殊なコード?ププププッ


591 :仕様書無しさん:02/11/25 09:52
知識をひけらかすためのコード??
>>587がDQNなだけの予感がするのだが

592 :仕様書無しさん:02/11/25 10:04
>>591
コボラーにとっては、Cのプログラムは全編「知識をひけらかすための
特異で妙な他人に迷惑をかけるコード」なんだな。


593 :仕様書無しさん:02/11/25 10:09
>>588
それはどういう意味ですか?

594 :仕様書無しさん:02/11/25 10:11
>>593
配列コピーの常套句。

595 :仕様書無しさん:02/11/25 10:13
>>594
にゃるほど

596 :仕様書無しさん:02/11/25 11:03
コボラーにとっては
Cのポインタ自体が邪悪で許せないらしい。

597 :仕様書無しさん:02/11/25 11:07
コボラーかどうかはどうでもいいが
>>587はなぜ知識をひけらかしているように感じたのか聞きたい

598 :仕様書無しさん:02/11/25 11:15
そんなことより>>567の何処に問題があるのか、知りたい。
コードには何の問題もないと思うし、漏れの使っているコンパイラでは
コンパイルできるのだが。

599 :仕様書無しさん:02/11/25 11:26
>>598
単にコンパイラが腐ってるだけだろ

600 :仕様書無しさん:02/11/25 12:08
>>599
はじめからそう書いてあるじゃん。

601 :仕様書無しさん:02/11/25 12:52
コボラーは、
五感をゆさぶる大仕掛けで周りの人間の肝を抜いたスペクタルなコードを
独占的に書いている人たちなのです。

602 :仕様書無しさん:02/11/25 12:54
>>573 >>581 >>582 >>576 >>587 は全員バカタレということで宜しいですか?


603 :仕様書無しさん:02/11/25 12:54
>>601 レスつかなかったら可哀想だから哀れみのレスです。

604 :仕様書無しさん:02/11/25 12:55
>>573 >>581 >>582 >>586 >>587 は全員バカタレということで宜しいですか?
・・・だった。

>>576スマソ 逝くわ。



605 :仕様書無しさん:02/11/25 13:16
598はプログラムは読めるけど、
日本語が読めない方ですか?

606 :598:02/11/25 14:32
そんなのありかよ!

607 :仕様書無しさん:02/11/25 16:28
俺が扱える言語を得意な順にソートすると、日本語は大体6番目くらいか。

608 :仕様書無しさん:02/11/25 18:57
1: 宇宙語
2: ヲタ語
3: ロリ語
4: アニメ語
5: 電波語
6: 日本語

609 :仕様書無しさん:02/11/25 19:03
>>608の書いたソースは読みたくないな

610 :仕様書無しさん:02/11/25 19:18
それ以前に、608のリストにプログラム言語が無いよ。

611 :仕様書無しさん:02/11/25 19:22
知らない人から見れば、プログラム言語は全て宇宙語という罠

もしくは英語

612 :仕様書無しさん:02/11/25 19:23
>>608
ロリ語はどこで習えますか?


613 :仕様書無しさん:02/11/25 21:35
>>607
大体って、何をキーにソートしたんだ?

614 :仕様書無しさん:02/11/25 21:54
>>613
「扱える言語を得意な順」ってちゃんと書いてるじゃん。
君も日本語不得意そうだな。

615 :613:02/11/25 22:45
>>614
ソートしたんなら大体って事はねーだろ!って意味だYO!
突っ込むんなら「ソート方法について聞きたいんじゃないの?」
ぐらい書けよ。
┐( -"-)┌ ヤレヤレ

616 :名無し@宿無し:02/11/25 22:53
ソートより大体を使ってる>>607の勝ちだな

617 :仕様書無しさん:02/11/25 23:31
>>613
ソート結果に必ず順位がつくと思っているんだな
 1: A
 2: B
 3: C
 3: D
 3: E
 6: F
ということもあるだろ

618 :塩田丸男:02/11/25 23:32
大体は最強やね

619 :仕様書無しさん:02/11/25 23:40
>>617
それと 「大体」 と何の関係があるんだ?

620 :名無し@宿無し:02/11/25 23:59
Dは大体4位
Eは大体5位


かな?

621 :仕様書無しさん:02/11/26 01:43
>>620
アフォですか?
同位の意味わかってる?

622 :仕様書無しさん:02/11/26 02:25
>>621 は大体 間抜け かな

623 :仕様書無しさん:02/11/26 02:31
620 に則るなら、正確には 621 は間抜けではないという事か?

624 :仕様書無しさん:02/11/26 05:10
大体どうでもいいってことで

625 :仕様書無しさん:02/11/26 05:13
620 に則るなら、正確にはどうでもよくはないという事か?

626 :仕様書無しさん:02/11/26 06:45
大体、君たちは何を熱くなってるんだ。

627 :仕様書無しさん:02/11/26 07:19
何をって、607 のいいかげんさ加減。

628 :仕様書無しさん:02/11/26 07:19
620 に則るなら、君たちは何を熱くなっていないんだという事か?

629 :仕様書無しさん:02/11/26 07:36
「大体できてますよ」←仕事でこれ使う奴は信用しないことにしている。

630 :仕様書無しさん:02/11/26 07:47
620 に則るなら、できていないという事か?

・・・そのまんまだな。

631 :仕様書無しさん:02/11/26 10:30
>>213
今までは、ショーとしてレベルが高くないものを「闘いですから」の逃げ道を用意して見せてきたって事。

プロレスは終わった芸能だって言うけど、終わったのは現存するメジャー一団体だけだから。

・プロレスはプロレス。これは嘘じゃない。
・プロレスは闘い。これも嘘じゃない。
・プロレスとは見る人を楽しませるもの。これも嘘じゃないね。
・プロレスは世界最強の格闘技。これは嘘。結局、これが嘘だってだけだから。

嘘に甘えてきたのはハッキリ言っちまえば一団体だけだから。そこがちゃんとやるかどうかだけ。
別に認めなくてもいいから、ちゃんとやればいいんだよ。本気で面白いのを。


632 :仕様書無しさん:02/11/26 11:02
  ___   ガスッ
 |___ミ      ギビシッ
   .||  ヾ ミ 、      グシャッ
   ∩_∧/ヾヽ
   | ,| ゚∀゚). .|  |;,      ゲシッ
  / ⌒二⊃=|  |∵.
 .O   ノ %`ー‐'⊂⌒ヽ  ゴショッ
   ) ) ) )~ ̄ ̄()__   )
  ヽ,lヽ) (;;;;;;;;;;;;;;;;;)(_( >>631

633 :仕様書無しさん:02/11/26 12:52
>>631
今までは、PGとしてレベルが高くないものを「VB厨ですから」の逃げ道を用意して呆れてたって事。
VBは終わったPG言語だって言うけど、終わったのはVB厨だけだから。

・VBはPG言語。これは嘘じゃない。
・VBで簡単にPGが作れる。これも嘘じゃない。
・VBとは適材適所で使えば開発効率が上がる。これも嘘じゃないね。
・VBもろくに使えないプログラマ。これは糞。結局、これが糞だってだけだから。

糞にコードを書かせてきたのがこの業界の悪いところ。そこをちゃんとできるかどうかだけ。
別にVBあってもいいから、ちゃんと使えるやつを養成すればいいんだよ。本気で使えるのを。


634 :仕様書無しさん:02/11/26 16:46
>>612
アルメニア共和国 ロリ地方
ttp://www.lori.am/arm/index.html

635 :よし、オレも:02/11/26 16:56
今までは、OSとしてレベルが高くないものを「仕様ですから」の逃げ道を用意して呆れてたって事。
M$は終わった会社だって言うけど、終わったのはWinだけだから。

・WinはOS。これは嘘じゃない。
・Winは簡単に使える。これも嘘じゃない。
・Winは適材適所で使えば作業効率が上がる。これも嘘じゃないね。
・何でもかんでもM$製品を導入する技術者。これは糞。結局、これが糞だってだけだから。

糞に任せてシステム構築させてきたのがこの業界の悪いところ。そこをちゃんとできるかどうかだけ。
別にWinあってもいいから、ちゃんと使えるやつを開発すればいいんだよ。本気で使えるのを。

636 :仕様書無しさん:02/11/26 17:53
>>12,633,635
ワラタ

637 :仕様書無しさん:02/11/26 23:16
//IDENTIFICATION DIVISION.
//PROGRAM-ID.  HELLOWORLD.
〜 省略 〜
//CONFIGURATION SECTION.
#include <stdio.h>
//WORKING-STORAGE SECTION
char szHello[]={"hello World!!"};
//PROCEDURE DIVISION.
//main SECTION.
int main(void)
{
 puts(szHello);
 return 0;
}

死ね

638 :仕様書無しさん:02/11/27 00:16
そしておまえらはやめたのですか?会社

639 :仕様書無しさん:02/11/27 00:23
>637ハゲワラ

640 :仕様書無しさん:02/11/27 09:57
int a[16];
for( int i=0; i<=16; i++){
a[i]=.......
}

デバッグさせられる方の身にもなってみろ……

641 :仕様書無しさん:02/11/27 10:03
/* 親、親の親、親の親の親、親の親の親の親 */
PNODE p, pp, ppp, pppp;

なんかの木を操作するコードでこんなん見て逃げたくなった。

642 :仕様書無しさん:02/11/27 10:43
>>640
16個程度で辞めたくなるよーじゃ、この業界向いてないな

a[2000], b[1500], c[500], i, i2, i3, i4, i5, i6;

とかいうのもザラだぞ

643 :仕様書無しさん:02/11/27 10:54
>>642 ハァ?

644 :◆ItkaRMAJ7. :02/11/27 10:58
>642サン
>640サンが言いたい事は i<=16 だと思うのですが、いかがでしょうか?

645 :仕様書無しさん:02/11/27 10:59
>642
個数の問題ではないと思われ。
int a[16]; なのに
i<=16 の範囲だとi=16の時には・・・。

偶に問題無さそうに動く機械があるからますます質(たち)が悪いな
でも、そんなのが当たり前にある俺の会社って・・・

646 :仕様書無しさん:02/11/27 11:26
if(n == a) { hoge }
else if(n == b) { hoge2 }
else if(n == c) { hoge3 }

といった調子でelse ifが10連発とか15連発とか。
しかもa・b・cは定数で、かつ+1ずつ増えている。

え?もちろん辞めたよ。

647 :仕様書無しさん:02/11/27 11:35
>>641
>/* 親、親の親、親の親の親、親の親の親の親
最大4階層しかないんでしょうかねぇ
>>645
同じマシンでも動いたり動かなかったりする罠

648 :仕様書無しさん:02/11/27 11:54
>>640
似たようなコードで、

{
  int a[16];
  int n;      /* <- これを消したら動かない */

みたいなコメントの入ったプログラムを見たことがある。


649 :仕様書無しさん:02/11/27 12:02
>>648
いいねソレ (藁

650 :仕様書無しさん:02/11/27 12:07
いま移植中のソースに以下のコメントがあった・・・
/* 仕様は○○様が決めました。○○月○○日のテスト時は正常に動いていました。 */
/* 私は何があろうと知りません。 */

おいおい・・責任持てよ前任者。

651 :仕様書無しさん:02/11/27 12:19
>>650
似たようなこと書いた記憶はあるな


652 :仕様書無しさん:02/11/27 12:20
>>648
ワラタ

653 :仕様書無しさん:02/11/27 12:26
>>637
件のソースに、
ENVIRONMENT DIVISION
と、
DATA DIVISION
がないぞ。
COBOLすら極められなかった香具師だ。哀れんでやれ。


654 :仕様書無しさん:02/11/27 12:29
>>645
int array[n]; とした時、array[n] にアクセスしてもクラッシュしない事が
ANSI で保証されている。
(他の変数を壊すかも知れないが)
いっそクラッシュしてくれた方がバグ見つけやすいんだが・・・。

655 :仕様書無しさん:02/11/27 12:31
int msize;
char* p;

msize = (面倒な計算式)
p = malloc(msize);
if( p != NULL ) { strcpy( p, …… ); }

というようなので strcpy で SIGSEGV。よくよく見たら msize が 0 になってたことが判明。
0byte の malloc で NULL 以外のアドレスを返す処理系なんて嫌いだ(この挙動は処理系依
存、って規定されてるし……)。

656 :仕様書無しさん:02/11/27 12:33
>>645
おいおい、16てベタ書きしてる時点でお前のほうがたち悪い。
そのアレイの上限をすべての工程で意識してない証拠。


657 :仕様書無しさん:02/11/27 12:46
>656
(゚Д゚)ハァ?

>656
(゚Д゚)ハァ?

>656
(゚Д゚)ハァ?

>656
(゚Д゚)ハァ?

658 :仕様書無しさん:02/11/27 12:58
>>655
malloc(10);もNULL以外のアドレスを返すことは処理系依存ですが何か?
free(NULL);は何も動作しないことが規格で明記されているのには文句は無いんですか?


659 :仕様書無しさん:02/11/27 13:01
>>656に激しく尿意!!

660 :仕様書無しさん:02/11/27 13:06
>>655
msizeが0かどうかに限らず、mallocしてるサイズとよりも大きいデータをコピーしようとしている時点でバグだろ。


661 :仕様書無しさん:02/11/27 13:07
>>656に激しく敵意

662 :仕様書無しさん:02/11/27 13:08
>>654
それはポインタが指せるってだけだろ。
アクセスしたらまずいだろ。

663 :仕様書無しさん:02/11/27 13:10
656って、変。

664 :仕様書無しさん:02/11/27 13:11
つうか、
#define MAX_A (16)
int a[MAX_A];
for( int i=0; i<MAX_A; i++){
a[i]=.......
}

って書いときゃ、i<=MAX_A だと変なのに気付くよ。
言語仕様にもよるけどな。

a[]が、0〜MAX_A-1 までの範囲を取るのか、
0〜MAX_A までなのか、知らないとな。


665 :仕様書無しさん:02/11/27 13:11
>おいおい、16てベタ書きしてる時点でお前のほうがたち悪い。
>てつアレイの上限をすべての工程で意識してない証拠。

最近はローカル変数にまで、全ての工程を意識させる必要があるのか


666 :仕様書無しさん:02/11/27 13:18
>>665
もちろんです。
三角形の内角を記憶する場合にもangle[3]と書いてはいけません。


667 :仕様書無しさん:02/11/27 13:25
>>665
つーか、それ以前の問題だろ。
645 のような説明を書く時に、数値のベタ書きがおかしいなんて意見が出てくるのが
おかしい。

>>666
あんた、645 のような説明を書く時、

#define ARRAY_SIZE 16
int a[ARRAY_SIZE]; なのに
i<=ARRAY_SIZE の範囲だとi=ARRAY_SIZEの時には・・・。

なんて書かなきゃいかんとおっしゃりやがりますか?

668 :仕様書無しさん:02/11/27 13:25
>>665
おまえ、自分だけがそのプログラム見るんじゃ無いことくらい、分かるよね。
で、いつなんどき、仕様が変更されるかも知れないのも、わかるよね。


669 :仕様書無しさん:02/11/27 13:29
>>667
数値が問題で無いのなら、なおさらそのほうが説明の要点が分かるってもんだ。


670 :仕様書無しさん:02/11/27 13:31
ま、この際、#define ... 自体は書かなくっても良いけどな。


671 :仕様書無しさん:02/11/27 13:31
>>669
なんでお前の頭の悪さに、こちらが付き合わなければならないの?
その程度も理解できないの??

672 :仕様書無しさん:02/11/27 13:35
月や曜日ごとの集計するのにa[12]やa[7]をやっていいかどうかは迷うところです。

673 :仕様書無しさん:02/11/27 13:36
>>671
プレゼンの基本。


674 :仕様書無しさん:02/11/27 13:37
>>670
645 は 642 に対する突っ込みなのに、16 という数値を削除して ARRAY_SIZE という
未知の識別子を登場させるべきだとおっしゃりやがりますか?

675 :仕様書無しさん:02/11/27 13:38
>>672
おおいに迷ってください。
社会的な習慣が、いつどんな理由で変更されるかは、誰も分かりません。


676 :仕様書無しさん:02/11/27 13:38
>>668
そうそういつ何時、三角形の内角が4つになったり、一年が15ヶ月になったりしないとも
限らないからな。


677 :仕様書無しさん:02/11/27 13:38
わかりやすく書いた方が言いに決まってる。
自分のミスを認めようとしないロートルが多すぎる。

678 :仕様書無しさん:02/11/27 13:40
頭の悪い奴らは、これだから困る


679 :仕様書無しさん:02/11/27 13:40
>>674
積極的にそうしるよろし。


680 :仕様書無しさん:02/11/27 13:41
>>677
少なくとも、674 に書いたある事を実行するのはきっぱり 「わかりにくい」 と
思うのだが。
あなたがここでミスと呼んでいるのは、656 が場外れな指摘をした事を撤回しない
事でつか?

681 :仕様書無しさん:02/11/27 13:42
>>676
太陰暦(例えば昔の日本の暦)だと1年が13ヶ月ある
閏月とかいうものがあったらしい


682 :仕様書無しさん:02/11/27 13:44
大変でつ!!

01 ARRAY-SIZE PIC 9(2) VALUE 16.
01 ARRAY PIC X(ARRAY-SIZE).

このコードが通らないのですがどうしたら良いでつか?

683 :仕様書無しさん:02/11/27 13:45
要するに、>>640 の元を書いた香具師が馬鹿だって事だろ?


684 :仕様書無しさん:02/11/27 13:46
>>683
議論のすり替えはよろしくないですなあ。

685 :仕様書無しさん:02/11/27 13:57
ネタに使う為に、わざわざ書き起こしたコードなんだから、
そこまで突っ込むなよ……。

マジレスすまんね。

686 :仕様書無しさん:02/11/27 14:00
>>676
三角形の内角が3以外になる可能性は無いが、
同じ書式で四角形、多角形を扱う事が可能になる。

1年が何ヵ月かは、どんな事があるか分からない以上、何とも言えない。


687 :仕様書無しさん:02/11/27 14:10
時間が10進数になる可能性とか。


688 :仕様書無しさん:02/11/27 14:12
>>687
10進数だけど?

689 :仕様書無しさん:02/11/27 14:14
>>688
10進化12進数、24進数、60進数ね。


690 :仕様書無しさん:02/11/27 14:19
>>686
人類が滅亡した場合は時間の進行自体に意味が無くなるので
時間という概念がなくなるというケースも充分、考えられる。
それにも対応しとかないとな。

691 :仕様書無しさん:02/11/27 14:21
>>686
#define ANGLES 16
Triangle[ANGLES]
Quadrilateral[ANGLES]
Polygon[ANGLES]

つーことですか?

692 :仕様書無しさん:02/11/27 14:22
>>690
意味はあるだろ。
だいいち、そのソフトが動いてるんだろ?(W


693 :仕様書無しさん:02/11/27 14:23
>>687
Microsoft は既に浮動小数点数にしてますが?

694 :仕様書無しさん:02/11/27 14:23
>>691
ふうん。
楽しい?


695 :仕様書無しさん:02/11/27 14:24
>>692
>意味はあるだろ。
あるのか?

696 :仕様書無しさん:02/11/27 14:25
ん?
10 進化 12 進数??

697 :仕様書無しさん:02/11/27 14:26
>>694
いや、「同じ書式で四角形、多角形を扱う事が可能になる」 の意味が本気でわからないんだけど。

698 :仕様書無しさん:02/11/27 14:26
>>691
君は、リスト構造を覚える必要がありそうだね。


699 :仕様書無しさん:02/11/27 14:26
>>691
define で定義しちゃうと修正が必要になるので
ANGLESはプログラム起動時の引数で渡すようにしてくれ
もしくは定義ファイルから読むとか

700 :仕様書無しさん:02/11/27 14:28
>>698
つまり、三角形の内角を記憶するのに、将来必要がでるかどうかも分からない
多角形にも対応できるようにリスト構造にしておけと?


701 :仕様書無しさん:02/11/27 14:31
つか、1年が13ヶ月になったときに、定数を直すだけで対応できたら
デスマーチなんてものは存在してないと思われ

反論あるならしてみろやゴルァ!!

702 :仕様書無しさん:02/11/27 14:31
>>697
配列の数を外部参照にすることで、繰り返し数が変更できるだろ。


703 :仕様書無しさん:02/11/27 14:32
>>698
何の話をしてるの?

704 :仕様書無しさん:02/11/27 14:33
「1年が13ヶ月になったときに、定数を直すだけで対応できるプログラム」 を書くことは可能だ。   
そう作ってないからデスマーチが発生する 



705 :仕様書無しさん:02/11/27 14:33
>>702
Triangle の内角の数も、外部で変更できるようにすべきって事?

706 :仕様書無しさん:02/11/27 14:34
>>700
n角形で一般化したクラスでも作っておけ。


707 :仕様書無しさん:02/11/27 14:35
>>701
デスマーチが発生するのはそういう原因じゃないでしょ。
人材、特にマネージャクラスに問題がある場合。

708 :仕様書無しさん:02/11/27 14:36
おまいら、こんなところで晒す数行のコードで定数定義してないとか
突っ込む アフォ に付き合うなんて、よっぽど暇なんでつね。
仕事まわそうか?

709 :仕様書無しさん:02/11/27 14:36
おもろいスレはここですか?

710 :仕様書無しさん:02/11/27 14:38
>>705
Triangleの関数作って、Squareの関数作って ... n角形のn毎に関数作ってっから、デスマーチなんだろ?


711 :仕様書無しさん:02/11/27 14:39
>>708
まわして。マジで。

712 :仕様書無しさん:02/11/27 14:42
>>710
冗長性はわかるが、その程度をデスマーチと呼ぶか?

713 :仕様書無しさん:02/11/27 14:44
どうでもいい議論にマジレスしつづけるスレはここですか?

714 :仕様書無しさん:02/11/27 14:45
>>712
n角形の関数をx通りの処理(回すとか並行移動とか・・・)いちいち書いてたら、天文学的数字になるわな。



715 :仕様書無しさん:02/11/27 14:50
(´-`).。oO(内角の数の話が、何で回転やに移動やらの話になるんだ?。。。)

716 :仕様書無しさん:02/11/27 14:51
ID欲しいな、このスレ

717 :仕様書無しさん:02/11/27 14:56
>>714
テンプレート作れ

718 :仕様書無しさん:02/11/27 14:58
「制御系・・・」スレにたかってた暇人が次のターゲットにしたのはこのスレですか?

719 :仕様書無しさん:02/11/27 14:59
>>717
デバッグの事や保持の事も考えた?


720 :仕様書無しさん:02/11/27 15:18
テンプレートを使う事と、デバッグの事や保持と、何の関係がある?

721 :仕様書無しさん:02/11/27 15:23
>>720
>>719はテンプレートを使えない、低級プログラマ

722 :719:02/11/27 15:35
>>721
そういう間接的な答えをどうもありがとう。
>>720 は、理解できたかな?


723 :仕様書無しさん:02/11/27 15:57
>>722
つまり、>>719のようなC++を理解できない低級プログラマがいるから
C++は使うなということだね。


724 :仕様書無しさん:02/11/27 15:58
>>723
「ポインタを理解できない低級プログラマがいるからポインタ使用禁止」に通じるものがあるな。


725 :仕様書無しさん:02/11/27 16:03
で、テンプレート使えと言う方向になった訳だから、
やっぱし、 配列のサイズはテンプレートに依存するって事で良いか?


726 :仕様書無しさん:02/11/27 16:04
stlを理解できない低級プログラマがいるからstl使用禁止とはどういうことだコラ!
そんなアフォは首にしろコラ!




727 :仕様書無しさん:02/11/27 16:14
>>722
だから、あんたには重大な問題かも知れないが、普通は関係無いって事だろ。

728 :仕様書無しさん:02/11/27 17:28
とりあえず謝っとく。
正直、すまなかった。

729 :仕様書無しさん:02/11/27 17:52
俺も謝っておく。
心の底からごめんなさい。

730 :仕様書無しさん:02/11/27 17:52
>>728
誰が何を誰に謝ってるんだよ?

731 :仕様書無しさん:02/11/27 17:53
>>730
この会社辞めようと思ったプログラマが上司に。

732 :仕様書無しさん:02/11/27 17:58
ここまで盛り上がったら>640も本望だろうよ、デバッグがんがれ

733 :仕様書無しさん:02/11/27 18:08
729 はともかく、728 が謝っているように見えない(w

734 :仕様書無しさん:02/11/27 18:19
じゃぁ、俺もとりあえず謝っとこうかな〜

ごめんなひゃい

735 :仕様書無しさん:02/11/27 18:27
オレは絶対誤らないぞ。

736 :仕様書無しさん:02/11/27 18:38
>>735
2ちゃんねるに書き込んでいる時点で人生を誤っていますが何か?

737 :仕様書無しさん:02/11/27 18:50
>>735
プログラマになっている時点で人生を誤っていますが何か?

738 :仕様書無しさん:02/11/27 18:54
それじゃ俺は射っとくか。今日は一人で残業だし。

739 :仕様書無しさん:02/11/27 20:42
流鏑馬をおやりになりますか?

740 :仕様書無しさん:02/11/27 22:50
人間に生まれた時点で人生を誤っていますが何か?

741 :仕様書無しさん:02/11/27 23:57
>>740
にわとりが先の方ですか?

742 :仕様書無しさん:02/11/28 00:08
>>719-732
CppUnit 等の xUnit で、テストから先に書くようにしよう!


743 :仕様書無しさん:02/11/28 00:09
>>739
738を見るまで読み方が思い出せなんだ。


744 :仕様書無しさん:02/11/28 00:14
りゅうてきば?

745 :仕様書無しさん:02/11/28 00:18
ウルティマだとおもうぼくちゃん。


746 :仕様書無しさん:02/11/28 00:19
やぶさめ

747 :仕様書無しさん:02/11/28 00:20
>>746
そんなマジレスが許されるのか?

748 :仕様書無しさん:02/11/28 00:24
>>747
もうボケるのに疲れた。


749 :仕様書無しさん:02/11/28 00:59
ごめんなさい。

750 :仕様書無しさん:02/11/28 01:09
>>704 そりゃ無理だろ(w

751 :仕様書無しさん:02/11/28 13:30
>>750
そのときには、1年の定義自体が違う日数になってるかもしれないし、
そうでなくとも、確実にひと月の日数が変更だろうから、その辺も考慮して、
閏年の適応も変更される可能性がおおいにあるね。

その辺すべてをカプセル化しておけば?

752 :仕様書無しさん:02/11/28 15:34
まぁ、実際問題としては、1年が13ヶ月になるかもしれないじゃないですか
とか言う香具師がいたら、たぶんぶっとばされるわけだが。

そんなこと言ってる暇があったら、とっとと仕事しろ、と。



753 :仕様書無しさん:02/11/28 15:38
>>752
2000年問題だって、そういう考えの奴らばっかしだったから、対応に追われたんだぜ?


754 :仕様書無しさん:02/11/28 15:54
元号が年に2回変わる可能性とか。


755 :仕様書無しさん:02/11/28 15:57
吉田VSフライ戦は八百長です。
ノゲイラVSセイムシェルト戦も八百長です。
某スポーツ新聞社のライターから試合前日に聞かされました。
シェルトは怪我をし、K−1を辞退。ホーストVSサップの再戦に。
というところまでどんぴしゃで聞かされました。
プロレスを八百長という気はありません。
しかし格闘技はどうでしょうか?
真剣勝負の中に、混ぜ物を入れるこの技法はなくならないのでしょうか?
詐欺だと思うんですよね。
悲しいですわ。

756 :仕様書無しさん:02/11/28 16:15
>753
必ずやってくる(きた)2000年と
1年が13ヶ月になるかどうかとは
問題の深さが違うと思うなあ。

757 :仕様書無しさん:02/11/28 16:17
#define for if(0) else for
必要性が分からない……

758 :仕様書無しさん:02/11/28 16:26
>>756
地球の公転も自転も、だんだん遅くなってきてるんだぞ。

759 :仕様書無しさん:02/11/28 16:43
>>757
わからないものを無理に使う必要はありません。
ところで、if(0) のあとに ; が抜けてますよ。

760 :仕様書無しさん:02/11/28 17:32
>>756
マジレスすると、暦文化の違う国への対応とかに役立つ。
つうか、単なる一例だから、ロケール問題はさ。


761 :仕様書無しさん:02/11/28 17:34
だから暦文化の違う国向けにローカライズするのに
#defineを書き換えるだけで対応できるのかと問い詰(パケロス

762 :仕様書無しさん:02/11/28 17:35
>>757
アセンブラソースになったときに意味ありそう。
・・・一度パイプライン切って、それからループねぇ・・・。
わかったような、わからないような・・・。


763 :仕様書無しさん:02/11/28 17:36
>>761
お前は #ifdef を知らないのか?と小一時間(ry

764 :仕様書無しさん:02/11/28 17:37
>>761
あのね、カプセル化って言ってるでしょ。
#define はキッカケ。


765 :仕様書無しさん:02/11/28 17:39
>>757
なんだろうね。759 の通りにセミコロンを付けるとして、それらしい効果を考えてもローカルなスコープを生む事位か?
例えば次のような感じ。j には999が入る訳だが...

int i=999, j=0;
for (int i = 0; i < 5; i++)
{ ... }
for (int i = 0; i < 10; i++)
{ ... }
j = i;

766 :仕様書無しさん:02/11/28 17:48
VCの古いスコープ仕様を回避するためだったような?

767 :仕様書無しさん:02/11/28 17:58
>>757
ttp://www.fides.dti.ne.jp/~oka-t/vc-mfc.html#quirks
の「for 文のループ変数」のとこを見ればよいかと。

768 :757:02/11/28 18:14
>>759,762,765,766,767
なるほど、きちんと意味があったのですね。
スレ違いでした(笑

769 :仕様書無しさん:02/11/28 18:16
VC7だと /Zc:forScope オプションですね。
でも、こっちがデフォルトじゃないんだよね。

770 :仕様書無しさん:02/11/28 19:06
すげーな、意味があるのか

771 :仕様書無しさん:02/11/28 19:10
というか、これをしなくちゃならない VC がタコなのであろ?
勝手にスコープ拡張するってのは……

772 :仕様書無しさん:02/11/28 19:39
M$独自仕様多すぎ。


773 :仕様書無しさん:02/11/28 21:14
>>772
それを言ったら某ランドも。

774 :仕様書無しさん:02/11/28 23:49
>>771
勝手に拡張してるんじゃなくって、昔の仕様を引きずってるだけだな。
(昔のC++はこういう仕様だった)

確か今の正しいスコープでは MFC がコンパイルできなかったはず


775 :仕様書無しさん:02/11/29 16:01
>>774
懐かしいな、Visual J++ 1.0 のスコープもそうだったよ。

776 :仕様書無しさん:02/12/01 14:40
金正日時代の朝鮮 名田隆司 (1999年)より
「金正日総書記は官職ではなく、全人民崇拝に基づく絶対の権威をもって革命と
建設を導いておられるのだ、ということである。
 これは、類いまれな資質と実力、高い道徳と信義を体した政治的指導者でしか
表現できないし、二十一世紀を導くのは金正日総書記である、と断言できる。
 二十一世紀は朝鮮の世紀となるだろう。」

777 :仕様書無しさん:02/12/01 19:28
 777ゲットさ
 ̄ ̄ ̄∨ ̄ ̄ ̄
  ∧∧
 ( ゚Д゚∩
  /  ノ
ΣムヘJ〜
 シュタッ

778 :仕様書無しさん:02/12/01 22:20
(´-`).。oO(0x309 ゲットがそんなに嬉しいか。。。)

779 :777:02/12/01 22:46
遊戯台専門組み込みPGですが何か?

780 :仕様書無しさん:02/12/01 22:50
>>779
チョソ逝ってよし

781 :777:02/12/01 22:55
むしろ遊戯台で遊んでる奴らに非国民と逝ってやってくれ。
収益は全て北に流れています。

782 :仕様書無しさん:02/12/01 23:34
負ければ北に送金だし、
勝てばヤクザの懐だし。

罪な遊びだね。

783 :仕様書無しさん:02/12/03 11:07
w = IsWindow( wndArray[0] );
if( w ) ::DestroyWindow( wndArray[0] );

w = IsWindow( wndArray[1] );
if( w ) ::DestroyWindow( wndArray[1] );

w = IsWindow( wndArray[2] );
if( w ) ::DestroyWindow( wndArray[2] );

 こんな感じで、wndArray[14]まで、DestroyWindowしてるコードがあった。
 「何でこんなコード思いつくんだよ、普通ループだろ。ifも妙だし。」
 って思ってたら、以下のような記述が、コメントアウトされていた。

// for( int i = 0; i < 15; i++ ) {
//     if( ::IsWindow( wndArray[i] ) ) {
//         ::DestroyWindow( wndArray[i] );
//     }
// }

 ...何があったんだ...


784 :仕様書無しさん:02/12/03 12:27
>>783
きっとそうしないとうまく動かないんだと思われ。
メモリが破壊されてるから。

printf(""); //これを消すと動かなくなる

とかと同じレベル(w


785 :仕様書無しさん:02/12/03 13:15
いや、デバッグ時に4番目あたりにブレーク入れたいためだけに
分離したんだよ、きっと(w

786 :仕様書無しさん:02/12/03 13:21
ソースの頭にいきなり
「最適化しないで下さい。最適化すると正常に動きません。」
とかコメント書いてあった。

787 :仕様書無しさん:02/12/03 14:36
>>786
某CPU向けのコンパイラは最適化処理にバグがあったので
バグ発生条件を満たしているソースに「最適化禁止」という
コメントをつけたことある。

漏れが最適化のバグを見つけてもう3年になろうというのに、
いまだに最適化関連はbuggyらしい。>某CPU向けコンパイラ

788 :仕様書無しさん:02/12/03 23:55
>>787
日立のH8

789 :仕様書無しさん:02/12/04 01:18
>>788
SH-4モナー

790 :仕様書無しさん:02/12/04 02:24
>>786
自分はARM用コンパイラを使って組み込み向けソフトウェアの開発を
しているのですが、同じように「最適化禁止!最適化すると動かなく
なる」というコメントを書いた記憶があります。
レジスタに連続アクセスする部分が最適されるとなぜかうまく動か
なかった。理由はいまだに不明。

791 :仕様書無しさん:02/12/04 02:47
>>790
おまえ、それは、volatileだろ。

792 :790:02/12/04 02:53
>>791
いや、volatile宣言はやってた。だから最適化で消えてない
はずなんだけど・・・。

793 :仕様書無しさん:02/12/04 02:55
>>792
逆汗よめねーうちにコンパイラのせいにしてやるなよ。

794 :仕様書無しさん:02/12/04 20:15
「volatile」 と 「レジスタに連続アクセスする部分」 の関係がいまいち
分からないんだが・・・。

795 :仕様書無しさん:02/12/04 20:23
CPU依存のところは素直にアセンブラで書けばいいんでないかい?

796 :仕様書無しさん:02/12/04 20:29
そういえばフラッシュメモリにデータを書き込むプログラム作ろうとして
大はまりした事あったなぁ。

その当時volatile宣言も知らなかった漏れ。そりゃ動かんわい。
正しく厨房だったなぁ。

797 :790ではないが:02/12/04 20:31
>>795
正直、スタートアップルーチンとか
アセンブラで書かないとしょうがない所以外はアセンブラ使いたくない。

798 :790ではないが:02/12/04 20:36
>>795
すまん、>>797撤回。CPU依存の話だったね。

799 :仕様書無しさん:02/12/04 20:44
>>794
この場合の「レジスタ」ってCPUの内部レジスタじゃなくって、周辺につながったデバイスのレジスタってことだろ。
メモリマップドI/Oだとレジスタアクセス=メモリアクセスで、それが最適化されると困るから volatile。

800 :仕様書無しさん:02/12/04 21:03
>>799
ごもっとも

801 :794:02/12/04 22:32
CPU レジスタの話じゃないのか、納得。

802 :名無し@宿無し:02/12/04 23:39
最近の組み込み用コンパイラは、
リセットからのスタートアップですらCで書けるよな

スタートアップがアセンブラってだけで
会社辞めたくなる香具師が増える予感

803 :仕様書無しさん:02/12/05 09:29
そしてコンパイラを作れる人がいなくなるのでした。まる。

804 :仕様書無しさん:02/12/05 11:18
まる

805 :仕様書無しさん:02/12/05 12:06
ばつ

806 :仕様書無しさん:02/12/05 13:32
ぽよん


807 :仕様書無しさん:02/12/05 18:42
>804-806
辞めたくなるね…

808 :仕様書無しさん:02/12/05 22:00
>>783
そうすると、ループがなくなるから、コンパイラの最適化が効いて、
少し速くなることがあります。


809 :仕様書無しさん:02/12/05 22:04
>>787
VC++ 6.0 モナー

810 :仕様書無しさん:02/12/06 09:52
>>808
DestroyWindow() をそんなに高速に実行してどうするんだ?

811 :仕様書無しさん:02/12/06 10:12
自分で書いたソースコードの中に

 a = a;

ってコードがあった。
自分では書いた覚えがないんだが、その部分のソースは俺しか書いてないし
はて?

812 :仕様書無しさん:02/12/06 10:34
>>811
そのコードをコメントアウトすると動かなくなるんだよ。

813 :仕様書無しさん:02/12/06 11:05
>>811
妖精さんの悪戯でしょ。きっと。

814 :仕様書無しさん:02/12/06 11:25
>>811
それを取るとコンパイラに文句を言われるとか。
曰く「変数が使われていない」とか。
あるいは「変数が初期化されていない」とか(w

815 :仕様書無しさん:02/12/06 11:32
それを消すと封印されていた古代の怪獣が目覚めるんだよ

816 :仕様書無しさん:02/12/06 11:50
>>815
槍持って来い

817 :仕様書無しさん:02/12/06 11:55
ロンギヌス

818 :仕様書無しさん:02/12/06 11:57
>>814
> あるいは「変数が初期化されていない」とか

 a = a;
  /~~~
その場合はこの時点で怒られるだろう。

819 :仕様書無しさん:02/12/06 15:15
ブレークポイント置きたかったとか?

820 :名無し@宿無し:02/12/06 22:05
>>811
DRAMをリフレッシュしてるんだろ

821 :仕様書無しさん:02/12/06 22:11
論争がなくて詰まらん・・・

822 :仕様書無しさん:02/12/06 22:44
ごちゃごちゃ書いているのをすっきりさせたつもりで
結局「a = a」となってしまったとか。

823 :仕様書無しさん:02/12/06 23:32
>>822
高校数学の問題解いてると
よくそうなるけどな。

824 :仕様書無しさん:02/12/07 00:19
普通、最適化で消えるから安心してくれ

825 :仕様書無しさん:02/12/07 01:01
>>824

goto >>786

826 :仕様書無しさん:02/12/07 08:21
わざわざ最適化はずすんかい Σ(´д`;) > a=a;

827 :仕様書無しさん:02/12/07 08:52
volatile int a;
a = a;


828 :仕様書無しさん:02/12/07 15:04
あ、Cはvolatileなんてのがあるのね。便利ね。

829 :仕様書無しさん:02/12/07 18:59
タイミング調整か、ブレークポイント置きたかったのか・・・
こういうコードにこそ、コメントが必要なんだな。

830 :仕様書無しさん:02/12/08 01:06
社員の忠誠心を試しているようなコーディング規約

831 :仕様書無しさん:02/12/08 04:01
すさまじく嫌な所で忠誠心が問われているな・・(;´Д`)

832 :仕様書無しさん:02/12/08 17:34
グローバル変数の接頭辞に
「NecIsBest_」とつけること。

...とか?

833 :仕様書無しさん:02/12/08 17:41
FujituuIsKuso_ ってのもありそうだね。

834 :最凶VB厨房:02/12/08 19:52
>>832
グローバル変数を使う奴が劇的に
減ったりしてな。(ワラ

835 :仕様書無しさん:02/12/08 23:24
>>98
だから速度が一番はやいんだよ。アホでは使えないC言語ってとこだろ。

836 :仕様書無しさん:02/12/08 23:27
>835
おいおい、>98はもういないと思うぞ。

837 :仕様書無しさん:02/12/08 23:28
>>835
もの凄い遅いレスだな。誤爆かとオモタヨ(w

838 :仕様書無しさん:02/12/09 01:04
「速度」 が 「はやい」?
えーと・・・

839 :仕様書無しさん:02/12/09 10:32
速度が重い。



840 :仕様書無しさん:02/12/09 10:42
速度がぬるぽい。

841 :仕様書無しさん:02/12/09 10:51
コンナトコロニモ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>840
 (_フ彡        /


842 :仕様書無しさん:02/12/09 11:15
中途で入社したばかりだけど、
この会社の新人の作ったやりっぱなしのシステム引継ぎ中・・・
やる気無し
あまりにひどい。一応本社のSEは内容確認したらしいが・・・

843 :仕様書無しさん:02/12/09 11:37
>>835
C言語ができても日本語ができないんじゃな・・・

844 :仕様書無しさん:02/12/09 11:39
言語ネタで日本語を持ち出すやつはたいがいクソ。

845 :仕様書無しさん:02/12/09 11:49
世の中にはここに上げられないような恐ろしいソースコードが、
社会にとけこんでいることを忘れてはならない。


846 :仕様書無しさん:02/12/09 12:45
そのソースコードを書いたヤツも
社会にとけこんでいることを決して忘れてはならない。

847 :バキュ ◆b.4YMMQI62 :02/12/09 12:51
そしてそういう恐ろしいコードが、知らぬ間に
漏れらの身体にもとけこんできていることもなるべく忘れてはいけない。

848 :仕様書無しさん:02/12/09 13:56
それが汗と共に染み出しPG特有のえもいわれぬ体臭を放っている事を忘れてはならない。

849 :仕様書無しさん:02/12/09 14:26
そうしてその体臭がPCに吸い込まれ、
次に使うことになった新人にしみいっていくことを忘れてはならない。

850 :引き篭もり:02/12/09 15:12
>>845
そうなの?
2chが最底辺だと思ってヨ

851 :仕様書無しさん:02/12/09 15:17
>>850
基本、ここに出てるのは数行〜数十行で伝わる糞コードのみ。まだまだ小技レベル。
DQソ には「コピペ大量生産」という技が残されてまつ

852 :仕様書無しさん:02/12/09 15:20
>>850-851
おまえら正気か?100%ネタに決まっとろーが!

853 :仕様書無しさん:02/12/09 15:49
というネタでつ

854 :426:02/12/09 18:15
>428
 Windows Update かけたら、Windows 2000 でも同一の問題が発生していて、
修正パッチが上がってましたな……ご愁傷さまです。

 やっぱ MS、悪い期待は裏切らんな。

855 :854:02/12/09 18:19
うげ、名前欄間違えた。
失礼>426氏
私は 424 であった……鬱だ……

856 :仕様書無しさん:02/12/09 20:24
>>854-855
それ以前に、どれだけの遅レスなんだよ。。(゚д゚)

857 :仕様書無しさん:02/12/09 20:48
今思い出したけど、この497日問題って、Linuxでもあったんだよな。ドライバだけど。

858 :仕様書無しさん:02/12/09 22:04
(゚д゚)ヌルポー

859 :仕様書無しさん:02/12/10 00:51
>>851
コピペ大量生産ならかろうじて読めるような気がするが、
何回読んでも意味のわからない、
「ああ、もしかし俺、頭悪くなったのかな…、
もうSE/PGやってちゃ駄目だね、そろそろ廃業かな…。
どれどれ、とりあえずテストしてみっか



なんじゃゴルァ!!!」
と思わせるソースコードが巷にあふれていることを忘れてはならない。


860 :仕様書無しさん:02/12/10 00:55
> なんじゃゴルァ!!!」 と思わせるソースコードが

まさにソレがコピペ大量生産されてる罠

861 :仕様書無しさん:02/12/10 00:57
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>858
 (_フ彡        /


862 :仕様書無しさん:02/12/10 02:37
http://bbs.enjoyjapan.naver.com/jphoto/read.php?id=enjoyjapan_4&nid=21887&work=list&st=&sw=&cp=3&selectSize=1

863 :814:02/12/10 18:11
>>818
ところが何故か怒られなかったりする事も...遅レスだが。

864 :仕様書無しさん:02/12/10 18:25
>>863
コンパイラのバグか、そもそも未初期化変数の使用を警告しないかのどちらかじゃないの?

865 :仕様書無しさん:02/12/11 00:15
>863
 ワーニングがうるさいから全部抑止してます、だったりして……ありそうだな。

 そーいや二年ほど関った案件(案件自体はさらに1年以上前から動いていた)で、1年半
くらい経ってようやく、Makefile のコンパイルオプションで警告抑止されてた、ってのが
発覚したことあったなあ。
 試しに全警告許可したら、山のように出てくるんだ、これが。
 それも「プロトタイプ宣言されてません」なんてのが(爆) いやあ、よく動いてたな、
あのシステム……

866 :863:02/12/11 01:39
かもしらん。ありゃ何やった時だったかな...
そのコンパイラはピー○の奴なのでマニュアルがなくて-Wallする
オプションがわからなかったんだっけか。
個人ではgccに-Wallするからそれはないんだが。
コンパイラくらい買うなりgcc使うなりしれ > 社長
# もうすぐ転職するし、もう知らんけどよ。

>>865
#includeがないとか...
そういや洩れが今の会社に勤めて2年くらいした頃に見たソースで、
ヘッダを作らないで.cの中でexternな宣言したりしてたな。
結局そのスタイル?は洩れらが駆逐してやったのだが、つまり現勤
務先はそのくらいDQNだったってワケだ。それでよくライブラリとか
売ってたよなぁ(当然の帰結としてつい最近まで在庫がイハ゜ーイ)

867 :仕様書無しさん:02/12/11 04:22
そういや、どこで見たんだったっけか?

#include "hoge.c"

ってやつ

868 :仕様書無しさん:02/12/11 05:20
>867
学校にて独学でC始めて3週間の頃それやってたです

6週間目で駆逐しました

分割コンパイルって一つの壁だったなぁ・・

流石に業務で見かけたら「ゴルァ(゜Д゜#)」だけど

869 :仕様書無しさん:02/12/11 10:12
なんか小物の再利用するときに

#define main _main
#include "hoge.c"
#undef main

って普通じゃない?


870 :仕様書無しさん:02/12/11 10:50
普通じゃない

871 :仕様書無しさん:02/12/11 10:56
>>869
あーこりゃさすがに辞めようと思うかもねー。

872 :865:02/12/11 11:39
>866
 そのとおり。#include 指定がない、だけならまだしも……インクルードするべき
ヘッダファイル自体が存在してなかったんだな、これが。
 だからすべての関数が「int func()」と同じ扱いという怖い怖い世界であった。
 引数チェックも戻り値チェックも機能しねえ(爆)

 たまにヘッダファイルがあると、関数宣言全て extern 付き……
#普通 #ifdef 使って二重定義防止するだろ……

873 :863:02/12/11 16:28
>>872
あいたたた。そりゃ痛い。
しかし、初期のK&RでC勉強してそれ以降は勉強してないとそうなるかも...あなおそろし。

866の補足:在庫は「捌けた」のではなく「捨てた」のだった(w

874 :仕様書無しさん:02/12/11 17:25
main() の入ってないのなら、#include "hoge.c" する事はある。
Makefile 作るの面倒で、コマンドラインでファイル指定するのも面倒な時は。
仕事ではやらない。

875 :仕様書無しさん:02/12/11 17:55
#include "hoge.as"

876 :仕様書無しさん:02/12/11 20:02
HSPかよ!

877 :872:02/12/11 21:28
さらにこの話には続きがあってな。
ある関数の下部関数(その関数からしか呼ばれないため、同じソースファイル内でのみ
有効であればいい)なのに、なぜかヘッダに定義があるんだ(w

必要なヘッダ定義がないくせに、無用な定義はあるという……痛いだろ?(w

あとで関数一覧(ライブラリ一覧)を顧客に提出するときになって、ようやく発覚した
この事実……いやもう、どうしてくれようかと……

878 :仕様書無しさん:02/12/11 21:31
ライブラリ一覧を顧客に提出する運びになって幸せだったな。

879 :865:02/12/11 22:30
>>877
げらげら。いてぇよぉ〜。痛すぎるよぉ。
つーかスレタイ通りという他ないかも。

でも、構造体とかはどうやって?
まさか、ない。とか...カ゛クカ゛クフ゛ルフ゛ル。

880 :名無し@沢村:02/12/11 22:35
銀行のATMにアクセスするプログラムの書き方

//ネットワークに流れるデータを受信する
recive(data);
//データがATMのときは
if(data==ATM)
//1億円を自分の口座に振り替える。
sendmoney(100000000)from(anybank)to(mybank);


881 :877:02/12/11 22:36
>879
 幸いにも、構造体なんかはシステム全体で使うんで、別のヘッダファイルで
きちんと定義していたよ。
 ただ、このヘッダファイルに #ifdef による二重定義防止がなかったりして
やっぱり痛かったりするんだが(w

882 :仕様書無しさん:02/12/11 22:38
>>881
#ifdef?

883 :881:02/12/11 22:43
あ、ごめん。要はこういうのの事。

#ifndef HEADER_TAG_XXXX
〜定義部〜
#endif

別に #ifdef〜#else〜#endif の括りでもいいけど。

884 :881:02/12/11 22:45
定義部の中には当然、
#define HEADER_TAG_XXXX
の一文が入っているので、ツッコミ勘弁。書き忘れた。

885 :仕様書無しさん:02/12/11 23:06
俺は#ifdefが必要になるなんて設計ミスじゃないかと思うんだが、
それは俺がおかしいんだろうか?

886 :仕様書無しさん:02/12/11 23:26
まぁバカヨケだしな。

887 :仕様書無しさん:02/12/11 23:59
>>885
ケースによると思われ。


それから、881のケースとは違うけど、
#ifdef DEBUG
/* デバッグ用コード */
#endif

とか使わない?これも設計ミス?

888 :仕様書無しさん:02/12/12 02:04
バカヨケと日本語でいうとすげー棘があるな(藁

ヘッダ内でほかのヘッダを読んだりし始めると、
#ifndef〜がないとやっていられなくなるね。

889 :仕様書無しさん:02/12/12 02:20
漏れらが日常お世話になってるライフラインの制御システムとか、イージス艦の司令システムとかでも、
きっと物凄いドキュソが絡んだ絶望的なコードだったりするんだろうね、本当のところは。
そんなものの上に成り立っている社会。そんなものの上にでも成り立てる社会。
世の中っていい加減にできてるもんだよなあ。

890 :仕様書無しさん:02/12/12 02:52
>>889
たとえコードが無茶苦茶でも、テストの網羅率を十分に上げてやれば
まともに動くシステムが出来上がる・・・と、この板のどっかに書いてあったな。

このスレを見てると無人島で原始人生活をしたくなるな(w


891 :仕様書無しさん:02/12/12 02:53
>>867
プログラマ勅諭其ノ壱が「1ファイル1関数」な今の派遣先では、
サブシステム毎に必ず"XXX_main.c"がある。
その内容は豪華なファイルヘッダと、それに続く

#include "XXX0000.c"
#include "XXX0001.c"
#include "XXX0002.c"
:
の行、行、行。

俺「どうしてこんなことするんですか」
客「こうすると、コンパイル時間が速くなるんだ。
覚えておいた方が良いよ。MakefileにもXXX_main.cの分だけ
書けばいいしね」
俺「(-_-)ウツダ」


892 :仕様書無しさん:02/12/12 11:06
全部のソース・ヘッダ、多重インクルード関係なく
VC++用の全ヘッダを読み込もうとしている某社のドライバ

コンパイルエラー特定できんくなくからやめれその思考

893 :ふく猫の運転手:02/12/12 12:56
http://homepage3.nifty.com/gokimama1/index.html

個人タクシーの運転手です。親父はふくねこの統括責任者です。
新しい経営方針のすばらしい会社だと思います。
ベンツの写真も載せました!

894 :仕様書無しさん:02/12/12 13:28
>>891
そのMakefileに
XXX_main.c: XXX0000.c XXX0001.c XXX0002.c …
という記述があるのかが気になるなぁ
無いならそのMakefile腐ってるし、有るなら「XXX_main.cの分だけ」って主張は間違えてるし…

895 :仕様書無しさん:02/12/12 14:49
>>887
そういうことなら変じゃないね。俺が言ったのは
多重定義を避けるためにifdef使う事について。

896 :865:02/12/12 15:12
>>881
ほっ。
でもそうすると構造体はヘッダに置くのに関数はアレというのはどういう事だろ。
既に思考能力が...


>>885
ヘッダから別のヘッダを#includeしてるとか、マクロを書き換える時とかに使う。
#ifdef HOGE
#undef HOGE
#endif
#define HOGE HUGA
みたいな。


>>889
きっと成り立っているように見えるだけなんだよ。
あるとき何の脈絡もなく「アルマゲドンモード」に突入したりとかさ(怖


>>891
モジュールスコープなシンボルはどうやって作るのだろう...
って、やっぱり...グローバル?

897 :ふく猫の運転手:02/12/12 17:10
http://hpmboard3.nifty.com/cgi-bin/bbs_by_date.cgi?user_id=NQA36553
おたくちゃんが不正アクセスをかけて来た。証拠を残してくれた。もう一度来て!こないだ見たサーバだった!パスワードを変えたからね。

898 :ふく猫の運転手:02/12/12 18:17
ふく猫ベンツ
http://homepage3.nifty.com/gokimama1/sub02.html

ふく猫ベンツ(横)
http://jp.y42.photos.yahoo.co.jp/bc/niseharu2002/vwp?.dir=/%a5%de%a5%a4%a5%d5%a5%a9%a5%c8/%c4%b9%cc%ee&.dnm=%a4%d5.jpg&.src=ph&.view=t&.hires=t


899 :881:02/12/12 23:27
>896
 つまり、
・巨大なシステムで、その中で基盤部分と各サブシステムごとにチームが分かれてる
・基盤部分が全体のデータ構造も担当する(でないと各サブシステムに渡せないから)
わけ。

 基盤チームが構造体定義はやっていて、それを全チームが使っている。基盤はベースの
ライブラリも提供するから、関数定義もする(関数定義は構造体定義とは別ファイル)。
 なんだけど、各サブシステムでは「自分達のつかうヘッダ」をまともに定義してなかっ
たというオチ。もっとも、基盤ライブラリで >877 をやっているあたり、もお怖い怖い。


900 :865:02/12/13 01:16
>>899
そういう作り方をする必要がある大きさでそれをしますか...
よく動いてるなぁ...なんか無駄な屍々累々の上に立ってるような気がするぞ。それ。

901 :899:02/12/13 02:01
>900
 開発陣は死屍累々でしたけど?(爆)

 よくよく見ると同じ動作する関数があったりとか、どう考えてもまとめられそうなのに
別々になっている関数があったりとか、もおチーム間の連絡が取れてないとどういう目に
あうかの、生きた実例満載でしたとも。

 このシステムがどこで動いているか、とても言えない……ヒントすら出せないほど有名
なとこだけに……

902 :仕様書無しさん:02/12/13 02:04
み○ほ?

903 :901:02/12/13 02:11
金融系ではないです。金融系でこんなのあったら今ごろ首括ってますがな。
#といいたいところだが、金融系でも似たような話はちらほらと……

さすがにこれ以上は守秘義務あるんで勘弁してくだせえ(^_^;)

904 :891:02/12/13 02:44
>>894
ご安心下さい。Makefileに依存関係は全く記述されておりませぬ。

俺「あのう、コンパイルかけるときは…」
客「ああ、必ず "clean" → "make"の順にね。
"clean"で全オブジェクトを消すから。これは徹底する様に」
俺「(-_-)ウツダ」

ちなみに、"clean"なるシェルスクリプトには
cd xxxx_obj
rm -f *
の行、行、行…

>>896
ご賢察。当然のことながら、グローバルでございます。
(調べてないが、このシステムに "static" という予約語は無い様な気が)
さらに、関数の引数にすりゃあいいものもグローバル変数だったりするので
情報のスコープを掴もうとすると、1,2ヶ月集中して解析しないと…


905 :仕様書無しさん:02/12/13 02:51
> よくよく見ると同じ動作する関数があったり

もっとよくよく見ると微妙に動作が違っている罠

906 :899:02/12/13 03:04
ちなみにこのシステムの規模がどのくらいかというと……
顧客に納入したドキュメント(ソースファイル印刷は含まず)を持っていくのに、

「タクシーのトランクに積み切れない」

ほどのファイルの山。巨大なファイルキャビネットが丸々埋まるわ、CD-R に入る
かどうか怪しいわで……

まあ、共通のファイルをサブシステムごとに別々に出せ(表紙だけ違って中身が同
じ……)、なんて要求で脹れ上がったものもあったんですが、それにしてもあのボ
リュームは萎えました。

907 :仕様書無しさん:02/12/13 11:22
そんな大量ドキュンメントを紙で納品でつか・・・(;´Д`)

908 :仕様書無しさん:02/12/13 12:51
ドキュンメントと呼ぶにふさわしい

909 :仕様書無しさん:02/12/13 13:03
1関数が6kステップてのは普通?
うちの会社のベテランにいるんだけど。
元コボラーだから?

910 :仕様書無しさん:02/12/13 13:17
>>907
ドキュメントなんてものは、中身スカスカでも
量さえあればいいのよ。どーせ客先の奴は
誰も読まないんだし。

911 :仕様書無しさん:02/12/13 13:34
>>909
とりあえず、行で数えろ。
ステップというのはどうも DQN くさい。

912 :仕様書無しさん:02/12/13 14:55
>>909
見てみないと何とも言えないが、
少なくとも読む気はしない。

元コボラーだからなのか、
前の担当者がコボラーだったからなのか、
あるいはあなた以外のあなたの会社の人間が全てコボラーだからなのか、
それとも世の中がコボラーでできているせいなのか、
それは誰にもわからない。

913 :仕様書無しさん:02/12/13 15:11
> それとも世の中がコボラーでできている

違うと信じたい。

914 :仕様書無しさん:02/12/13 15:38
>909
絶対、普通じゃない。

915 :863:02/12/13 15:42
>>904
makedependしる!とか言いたくなりますなぁ...
# 名前欄に865とか書いてたような気がする。すまぬ > 865

>>913
残念ながら世の中ほとんどコボラーなのだよ。
全部ではないけどね。

916 :仕様書無しさん:02/12/13 16:08
>>915
> 世の中ほとんどコボラー

頼む、夢を見させてくれ。

917 :仕様書無しさん:02/12/13 16:18
コボラーを見たことが無い僕は幸せ者です。

918 :仕様書無しさん:02/12/13 17:44
ちゃんとCに適応してないコボラーはもう逝っていいね・・

919 :仕様書無しさん:02/12/13 18:07
ちゃんとCOBOLに適応してないC爺はもう逝っていいね・・

920 :仕様書無しさん:02/12/13 18:42
ちゃんとぬるぽに適応してない香具師はもう逝っていいね・・

921 :仕様書無しさん:02/12/13 18:52
ハイハイ! 逝っていいYO!!
  ∧_∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >_∧∩
  _/し' //. V`Д´)/ ← >>920
 (_フ彡        /




922 :920:02/12/13 18:55
>>921
うるせーばか!!
氏ね!
それはもう流行ってないんだよばか!!


923 :仕様書無しさん:02/12/13 19:03
>919
オブジェクト指向ってんならワカるんだが・・w
COBOLなんて前世紀の遺産もういらないし

924 :仕様書無しさん:02/12/13 21:05
>923
じゃあオブジェクトCOBOLならいいのかと小一時間(略

925 :仕様書無しさん:02/12/13 21:10
>924
害意外の何物でもない

926 :仕様書無しさん:02/12/13 23:28
/* なぜ動いているのかわかりません。
  変更しないでください。
   1998.5.7 Hagiwara
*/


927 :仕様書無しさん:02/12/13 23:34
>>926
うはは。

928 :仕様書無しさん:02/12/13 23:39
public static String SQ = "\'";
public static String LTAG = "(";
public static String SELECT = "SELECT";
こんなのがずーっと・・・
そして
StringBuffer SQL = new StringBuffer();
SQL.append(SELECT);
SQL.append(LTAG + SELECT + ・・・・
HTMLやSQLをこんな感じでつくっていた・・・
JSP知らないのだろうか。

929 :仕様書無しさん:02/12/13 23:40
たまたまCORBAの某フレームワークを使う必要性上、
C++(フレームワーク)→COBOL(ビジネスロジック……?)→C++(ミドル)
とかゆー奴の末端ミドルを作ってますが何か。
ついでにその上をちょこっといじっただけだがCOBOL初体験までやっちまいましたが何か。

COBOL側からはヌル文字終端なんて有るわけもない文字の洪水が
だらーっと流れ込んできて、それをmemcpyしちゃヌル文字くっつけて……
C++側から書き込むときにはうっかりヌル文字入れないよう気を付けて……(つ´д`;)

930 :仕様書無しさん:02/12/13 23:44
>>928

ひょっとして

#!/bin/sh
java hoge "$@"

とかしてCGIとして使うんじゃないのか(w

931 :発売決定記念:02/12/13 23:49
>>926
それはオギワラって読むんだよ

932 :仕様書無しさん:02/12/13 23:53
>>928
おもいっきりサーブレット。
しかも初期のサーブレットの技法。
フレームワークとかMVCかけ離れているよ。
そのわりには、リーダーとかは
「これからはMVCだ」とかいってるし(w
定数を宣言しているのがインターフェイスになっていて、
色んなクラスで実装されている・・・
C言語のヘッダと勘違いしているのだろうか。
「インターフェイスにすると定数宣言しなくてもいいから便利」とか
いっちゃってるし、その謎のライブラリを「フレームワーク」といってるし。

933 :932:02/12/13 23:58
自分にレスしちゃった(w
SQLはPreparedStatement使えばいいし、
htmlは最低限JSPにしてくれって感じだよ。
ついでにLogもマルチスレッド化してないので激遅。
javaを知らないのにjavaの案件受けていいのだろうか。


934 :仕様書無しさん:02/12/14 02:19
>933
更に、そのプリペア用のSQL文を「ぷろぱちーりーそすばんどる」
にした案件があったよ。あんまり意味なかったけどね。


935 :仕様書無しさん:02/12/14 13:25
>>901
携帯だろ?

936 :!901:02/12/14 13:45
>>936
俺もそう思った。


937 :仕様書無しさん:02/12/14 14:03
末尾展開してかろうじてスタックオーバーフローはふせげたが、しかし……

938 :仕様書無しさん:02/12/14 14:17
携帯がバグっても死人が出ないのが唯一の救いだね。
中身は凄いことになってるらしいね。

939 :仕様書無しさん:02/12/14 14:33
結構凄いことになっているのが事実。

例えば、WindowsXP対応ソフトという名前だが、中身はMS-DOS時代(Windows3.1でもいいや)の
ロジックとビットの扱いまで同じで、途中に変換関数かませてAPIをWindowsXPに対応したもんを呼んでいるだけとか
いうようなものが多い

昔のソースを毎回違うメンバーが仕様書もなしに、前のメンバーの改造内容を解析しては
新しい仕様に対応・・・の繰り返しがほとんど

産酔なんて、その最たるヤバメーカー。毎回開発メンバーがハードもソフトも3/4は入れ替わってまつ 

940 :仕様書無しさん:02/12/14 15:29
どこも一緒だ。
工賃ばかり考えて育てるということをしない。
何年も前のどこの誰ともわからんやつのコードのデバッグばかりしてると
いい加減うんざり。

941 :仕様書無しさん:02/12/14 15:59
コボラーって新しい歌手のオタクでつか?

942 :901:02/12/14 16:13
>935
 残念、携帯ではないです。
 ただし通信関連であることは正解……

 一応、官公庁でもありません(w

943 :仕様書無しさん:02/12/14 21:18
>939

>例えば、WindowsXP対応ソフトという名前だが、中身はMS-DOS時代(Windows3.1でもいいや)の
>ロジックとビットの扱いまで同じで、途中に変換関数かませてAPIをWindowsXPに対応したも>んを呼んでいるだけとか
>いうようなものが多い

いいじゃん。Adaptorパターン使いまくりで(w

944 :939:02/12/16 13:14
>>943
あくまで雰囲気としてそんな感じ、ということで。
現実はどこかの会社の専用OSで動くどこかのメーカーの専用コンパイラ用に
カスタマイズされたC言語(何故かmemmoveが標準関数として存在してなかったりする)で
5〜6年ぐらい前に組まれた初版のソースを、引継ぎ仕様ももらえない派遣社員が
自力で解析してゴリゴリ力押しで新機能やバグを加えていっているってところだ

945 :仕様書無しさん:02/12/16 16:04
Set cnn1 = CurrentProject.Connection


946 :仕様書無しさん:02/12/18 08:47
>945
それは動きまつか?

947 :仕様書無しさん:02/12/18 12:54
RTOS-C?

まぁ閉鎖的で誰の目にも触れないソースだから
結構すさまじいことになってる部分も多い

948 :仕様書無しさん:02/12/18 19:40
char buffer[40960000];

こんなん。

949 :仕様書無しさん:02/12/19 01:40
VBで、「hhmmss」で時刻が格納されている6桁のString変数timeAとtimeB、
その2つの時刻の差を求めたいらしいのだが、

Integer h, m, s
String diff

h = val(mid(timeA, 1,2)) - val(mid(timeB, 1,2))
m = val(mid(timeA, 3,2)) - val(mid(timeB, 3,2))
s = val(mid(timeA, 5,2)) - val(mid(timeB, 5,2))

diff = format(h, "00") & format(m, "00") & format(s, "00")

もーどうツッコめばいいのやら。


950 :仕様書無しさん:02/12/19 02:43
char a[255];
char *b;
int c;

strcpy( a, "DATA" );
c = strlen( a );
b = malloc( c );
memcpy( b, a, sizeof(a) );

「せんぱい、訳わかんないエラーがでます」

951 :仕様書無しさん:02/12/19 03:20
>>950
「訳わかんないのはオマエだ」と言ってやれ。

952 :仕様書無しさん:02/12/19 03:39
関係ないけど sizeof a が好みです。

953 :仕様書無しさん:02/12/19 09:52
すいません

sizeof(a) で、なおかつ return(a)

な奴です。すいません。

954 :仕様書無しさん:02/12/19 10:21
折れも sizeof a が好きです。

955 :仕様書無しさん:02/12/19 10:52
漏れは sizeof(char) と釣り合いが取れなくなるのがイヤだから sizeof(a) です。

でも return a; です。

956 :仕様書無しさん:02/12/19 16:53
sizeof (a)で、return a;です。

957 :仕様書無しさん:02/12/19 20:22
つかおまいら括弧がどーとか言う前にmemcpyでb+c以降の領域ブチ壊すだろ。
memcpy(b, a, c);ぢゃねーのかと小一時間(略
さらにstrcpy(a, "DATA");はstrncpy(a, "DATA", 254);かと小一時間(略
ついでに255は256って言いたいんじゃないかと小一時間(略
おまけに255みたいに直値入れてねーでマクロにしろと小一時間(略
おまけついでにc程度のもんに変数作るなと小一時間(略
さらにおまけついでに変数名は内容がわかる物にしろと小一時間(略

ハァハァ(違

958 :仕様書無しさん:02/12/19 20:26
Dim MangeDate As Date

959 :仕様書無しさん:02/12/19 20:53
マ、マン・・・


フランス語かしら?

960 :仕様書無しさん:02/12/19 21:42
>さらにstrcpy(a, "DATA");はstrncpy(a, "DATA", 254);かと小一時間(略
"DATA"はヌルストップ含めて5バイトしかないので、それは不自然と思う。
それ以外はみんな承知の上。あえて言及するまでないよ。

MangeはMargeかなんかの打ちミスか?

961 :仕様書無しさん:02/12/19 22:00
strdup()

962 :958:02/12/19 22:23
ManageDateのtypoです。ちなみに自分自身。

963 :仕様書無しさん:02/12/19 22:24
何に使われてるかは知らないけど、ManageDate そのものは別に痛くないと思うぞ。

964 :仕様書無しさん:02/12/19 23:09
いまコラルのプログラムを直してるんだが、勘弁してくれ。

965 :仕様書無しさん:02/12/19 23:39
>962-963
>958をよくみれ

966 :仕様書無しさん:02/12/20 01:02
(゚Д゚)ハァ?
脳内補完?
何が?

967 :仕様書無しさん:02/12/20 01:03
質問。
何でコボラーは何でもかんでも文字列で処理したがるんですか?
そんなならJavaなんて使わず大人しくCOBOL使ってろよ。

968 :仕様書無しさん:02/12/20 01:17
sizeof( c )ぐらいがいいな。


969 :957:02/12/20 01:42
>>968
「小一時間」って言ってみたかったんだよぉ
# "DATA"が元のソースでも"DATA"なのかどうか怪しいからね。
# それに変更が入ったけど修正忘れて...というのもあるし。
# 元の文字列がネット経由で送られて来たものならバッファオーバーフロー攻撃が...

970 :仕様書無しさん:02/12/20 01:43
>967
COBOLの仕事は年々減りつづけてるの。食ってかなくちゃならないの。
だからそんなこと言っちゃダメ。

971 :!968:02/12/20 08:25
>>957
言い訳せんでもみんなわかっとる。
覚えたてのキーワード、連発したくなる厨房なんだなあ、とみんな無視してたんだよ

972 :仕様書無しさん:02/12/20 16:51
>970
 Cの御作法ワカってないこぼらーが
 食っていくために書いたソースで
 一体何人泣いてんだろうね

973 :仕様書無しさん:02/12/20 17:29
COBOLは全然知らんのだが、
モジュール分割とか構造化とかそーいう概念はCOBOLにはないの?
なんかコボラーの先輩が書いたソース見たら
1関数内に20個くらいSQL文が書いてあったりして
気絶しそうになったんだが。

974 :仕様書無しさん:02/12/20 18:05
>972
俺は平気。もう慣れたもん。全部俺が作りなおせば済む事だから平気。

>973
オブジェクトCOBOLはオブケクト指向らしいよ。どんなんか知らんけど。

975 :仕様書無しさん:02/12/20 18:59
>>974

OBJECT DIVISION
 DATA SECTION

 FUNC SECTION

みたいな感じなのかなー?
オブジェクトコボル

976 :仕様書無しさん:02/12/20 19:14
★★★★★★★★★★★★★★★★★★★★
http://finito-web.com/kanemou/index.html
★★★★★★★★★★★★★★★★★★★★
  (●^o^●)(●^o^●)(●^o^●)

977 :仕様書無しさん:02/12/20 21:14
public Vector taisetsunaData = null;

…とりあえず、Ctl+Fしてみた。
『pr(ivate|otected)は見つかりません。』

ああああああああああああああああ

978 :仕様書無しさん:02/12/20 21:33
>>2
gotoいってよし

979 :仕様書無しさん:02/12/20 22:35
オソッ

980 :仕様書無しさん:02/12/20 22:36
と、一応突っ込んでおいた.これでよかったか?

981 :仕様書無しさん:02/12/21 00:47
>>973
「アルゴル以前にはフォートラン(Fortran)とコボル(COBOL)があったが、いずれもまだ構造化された言語ではなかった。」
ttp://www.chienowa.co.jp/frame1/ijinden2/Edsger_Dijkstra.html
とは言っても、誰もALGOL使ってないワナ。構造化COBOLってのもあるらしいが、生まれが生まれだし。

982 :◆ItkaRMAJ7. :02/12/21 10:04
誰か次スレ立ててよ・・・

983 :仕様書無しさん:02/12/21 10:30
>>974
>全部俺が作りなおせば
 そんな作業に会社がお金出してくれるの?いいなぁ。
ウチは出してくれないから、ただ働きになっちゃうヨ。
「それがイヤなら最初からまともなモノ作れ!」って怒鳴られそうだ。

984 :仕様書無しさん:02/12/21 10:36
>>973
構造化プログラミングの概念はCOBOL 85から取り入れられたハズ。
ただし、そういう概念が言語に取り入れられても、プログラマーの
頭が対応していないと、そういうプログラムを平気で書き続けるこ
とになっちゃう。

985 :仕様書無しさん:02/12/21 11:16
先日、最初オイラが開発して若いのに引き継いだ案件で火を噴き始めたので、
引継ぎ後に追加されたコードを見たら、500行の関数がありまつた。


986 :仕様書無しさん:02/12/21 11:43
I hope so karma will die.

987 :仕様書無しさん:02/12/21 12:11
ややこしい処理をするとこなんかは1000行行ったりするけどな、俺.



988 :仕様書無しさん:02/12/21 12:13
書店で NetCOBOL の解説書を見かけたので読んでみた。
あれ joke soft だろ。

989 :仕様書無しさん:02/12/21 14:38
たのむから、関数ヘッダを全てコピペですまさんでくれ。
それなら最初から何もするな。

990 :仕様書無しさん:02/12/21 15:11
次スレ立てますた。

■この会社辞めようと思ったソースコード#8
http://pc.2ch.net/test/read.cgi/prog/1040451049/


991 :ではそろそろ…:02/12/21 18:50

        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ <  1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )

992 :仕様書無しさん:02/12/21 18:55
( ´,_ゝ`) プ

993 :仕様書無しさん:02/12/21 18:55
 +  +
+( ゚Д゚)<1000
  +   +

994 :仕様書無しさん:02/12/21 18:57
         ,-、            ,.-、
        ./:::::\          /::::::ヽ
       /::::::::::::;ゝ--──-- 、._/::::::::::::::|
       /,.-‐''"´          \:::::::::::|
     /                ヽ、::::|
    /                   ヽ|
     l                         l
    .|    ●                |
     l  , , ,           ●     l
    ` 、      (_人__丿    、、、   /
      `ー 、__               / 1000
         /`'''ー‐‐──‐‐‐┬'''""´
        ./        ___ l __
         l   ./    /  |/ |
         `ー-<    /  ./  ./
           `ー‐--{___/ゝ、,ノ

995 :仕様書無しさん:02/12/21 18:58
>>992
       ∧_∧
       /⌒ヽ ) <笑われた…鬱だ・・・
      i三 ∪
       |三 |
      (/~∪
     三三

996 :仕様書無しさん:02/12/21 18:59
 >>992
  茶でも飲んでマターリ汁
____ _______/
      V
   ∧ ∧  シュッ!        ガン!!
   ( ゚Д゚) ミ            从_∧
   /  つ   ====== 旦    )
 〜/  ノ              (    )
  (/ し'

997 :小人:02/12/21 19:00
誰もいない。。。


998 :小人:02/12/21 19:00
1000getするならイマノウチ。

999 :仕様書無しさん:02/12/21 19:00
1000取るなら今のうち・・・

1000 :小人:02/12/21 19:00
久しぶりに1000げっと。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

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

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)