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

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

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

1 :仕様書無しさん:03/04/10 20:23
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
COBOL ライクなソースコード。(゚д゚)マズー
をつらつらと綴っていって頂戴。

ちなみにここは質問スレじゃないよ。
技術的な質問がしたいならム板に逝って。

前スレ
この会社辞めようと思ったソースコード#9
http://pc.2ch.net/test/read.cgi/prog/1045401372/

952 :950:03/05/31 15:29

次スレたてますた。
この会社辞めようと思ったソースコード#B
http://pc.2ch.net/test/read.cgi/prog/1054362467/l50

なんの捻りもないけど。スマソ

953 :仕様書無しさん:03/05/31 15:37
>>952
お疲れサマー
でも、ホントにそのまんまだぞ!w

954 :936:03/05/31 16:22
>>939 >>942
ありがd。
少し前に友達に
「このコード動くんだけど、途中でセグる」って言われて見たときのコードがそれだった。
実際には、
CFoo *p;
p->foo();
だったのだけれども。
調べたところ、pが初期化されてないのにfoo()が呼ばれてて、
その中でおかしくなってた。

未初期化のオブジェクトに対してメソッドを呼べないようにした方がいいと思うんだけど、そうしない理由は?
単にオブジェクトが初期化されてるかどうかを判断できないからということ?

955 :939:03/05/31 16:53
友達に見せてもらったコードでは、メンバ変数を触ってたんじゃないの?

CFoo に メンバ変数を増やして、
CFoo::foo() でそのメンバにアクセスするようなソースにしないと
seg fault になるようなソースにはならんのだが。

メンバに触ってれば(gcc だったら -Wuninitialized つければ)、
一応警告は出るはずだけど。

>>927 のソースでは、メンバをいじらないから、コンパイラも
特に問題がないとして -Wuninitialized つけても問題が出ないっす。
多分。

956 :936:03/05/31 17:23
>>955
えっと、自分は>>939のレスで十分理解できました。
要するにthisポインタを介したアクセスが存在しないメンバ関数はいつでも呼び出せる
(メンバ関数は暗黙的にthisポインタが渡されるだけのただの関数だから)ってことですよね。
これは規格の上で正しいものなのでしょうか?それとも環境依存なのでしょうか。

>友達に見せてもらったコードでは、メンバ変数を触ってたんじゃないの?
そうです。>>954ではそれを言いたかったのです。
言葉足らずですいません。

957 :928:03/05/31 17:31
>>956
ちゃんと調べてないが、規格上問題ないと思うぞ。
コンパイル時に、そのポインタが正しくオブジェクトを
指してるか指してないかのチェックがどれだけ大変だと
思うか考えてみ。(無理でしょ)

958 :939:03/05/31 17:34
>>956
this ポインタ、というかアドレスの妥当性は言語の取り決める範囲だろうか…
これ以上は言えないです。

959 :仕様書無しさん:03/05/31 17:36
>>957
貴様、未定義動作を問題ないと申すか?

960 :928:03/05/31 17:38
>>959
どういう意味で発言してますか?
私は「コンパイラがポインタが正しくオブジェクトを指しているか
どうかチェックしなくても問題ない」という意味で発言していますが。

961 :928:03/05/31 17:44
なんか日本語下手でしたね。もう一回書きますと、>>957
「”ポインタが正しくオブジェクトを指しているかどうか”を、
コンパイラがチェックしなくても(規格上)問題ない(のではないか)」
という意味の発言です。

962 :仕様書無しさん:03/05/31 18:08
>947

あの書き方を世に広めたという点では、おそらくこっちが大先輩。

林晴彦 「Cプリプロセッサパワー」

全編に渡って例のようなマクロが満載。本を開いて10分で頭が痛くなること
請け合い。悪影響の大きさで三田本と並ぶ怪作。

ttp://www.pro.or.jp/~fuji/computerbooks/c/cprepro.hayashi.html


963 :959:03/05/31 19:02
>>961
未定義動作と言ったら、実行時の動作の話。

「thisポインタを介したアクセスが存在しないメンバ関数はいつでも呼び出せるってことですよね」
に対しての「問題ない」がとてもコンパイル時のみの話とは読めなかったので。

964 :936:03/05/31 19:17
皆様レスどうもです。
>>957
>コンパイル時に、そのポインタが正しくオブジェクトを指してるか指してないかのチェックがどれだけ大変だと思うか考えてみ。(無理でしょ)
そう思った上での発言が
>>954 >単にオブジェクトが初期化されてるかどうかを判断できないからということ?
です。無理だろうというのはなんとなくわかります。

ところで、この問題の回避法は「気をつけること」と「>>920」でしょうか。

(自分はメソッド内でthis==0になったことがないのですが・・・。経験が浅いからなのでしょうか)

965 :920:03/05/31 19:43
実際問題として直接this==0の近辺でエラーが出ることはないかな。
それよりもは、そこから呼ばれていった別の部分(MFC等のライブラリ内)や、
もっと後の処理でおかしくなってたりとか。
でもって、ステップ実行したり、スタックを1つずつ戻っていって、
ふとthisの値をみると0になってたり。


966 :仕様書無しさん:03/05/31 19:44
>>965
thisは存在する。thisの向こうに誰もいないだけで。


967 :939:03/05/31 19:45
>>964
そうでつ。気をつける のはポインタを使う限りついてまわる話。
結果にコンパイラは「問題ない」コードを吐いたとしても、それは結果論。
そもそも未初期化のポインタを使う事自体が期待した動作ではないでしょう。

this == NULL なんかも利用者側が期待していないものの一つ、ってことに
過ぎないですよ。

968 :仕様書無しさん:03/05/31 19:48
>>965
Windows だとデカい値がポインタに入っているとアドレス扱いして、
0 に近い値だと ID ( リソースID ) 扱いしてたりしなかったかな…

自信なし。

969 :仕様書無しさん:03/05/31 19:57
漏れが知ってるのはCStringのコンストラクタかな。

気持ちが悪いのもほどがある。
CString s( IDS_NULLPO );


970 :969:03/05/31 20:00
スマソ間違えた。
CString s( (LPCSTR)IDS_NULLPO );
キャストしなくてはな。

971 :仕様書無しさん:03/06/01 02:10
会社のHPのindex.htmlのBODYタグが

<body background='bakku.jpeg onload="init();"'>

だったとき

指摘したら稟議書上げてくれって言われ…

972 :仕様書無しさん:03/06/01 03:12
>>971
タグって時点で終わっているもの。

973 :仕様書無しさん:03/06/01 03:19
>>972

>>971じゃないがBODYタグで合ってるだろ?
BODY要素開始タグとでも言って欲しいわけ?

974 :仕様書無しさん:03/06/01 03:23
>>973
>>972じゃないが Style Sheet 使えってことでは?

975 :仕様書無しさん:03/06/01 03:28
>>974
>>973だが、
>タグって時点で終わっているもの。
から
>Style Sheet 使え
が導き出せるのか?
たとえCSS使ってもonload使うならタグは省略不可だろうに。

976 :仕様書無しさん:03/06/01 03:31
えーっとつまり、>>972
>タグって時点で終わっているもの。
じゃなくて、
>backgroundって時点で終わっているもの。
だったら
>Style Sheet使え
ってことだろうと分かるんだけど。ってことです。

977 :仕様書無しさん:03/06/01 03:41
>>975
>>974じゃないが、へたしたらいつまでたってもこないイベントに依存するのか?

978 :仕様書無しさん:03/06/01 03:50
background=<STRONG>'</STRONG>bakku.jpeg onload="init();"<STRONG>'</STRONG>

誰も気付かないのか…
>971の会社のHP担当した奴並の無能揃いだな

979 :仕様書無しさん:03/06/01 03:50
>>977
>>975だが、どういう意味?

980 :仕様書無しさん:03/06/01 03:52
>>978
それ何のつもりだ?

981 :仕様書無しさん:03/06/01 03:52
無能かもしれんが知恵熱ぐらいは出るぞ。

982 :仕様書無しさん:03/06/01 03:54
>>978
それがどうかしたのか?今は>>971はあんまり関係ないだろ?

983 :仕様書無しさん:03/06/01 03:59
もはや誰一人として話が噛みあっていない罠。こんな会社あったらイヤだw

984 :仕様書無しさん:03/06/01 04:00
>>971-982
秀逸(w

985 :仕様書無しさん:03/06/01 04:17
てめーらのせいでタマちゃんの体の色が変色したぞ
どうしてくれる

986 :仕様書無しさん:03/06/01 04:17
>>978
なるほど!それは終わってる!

987 :仕様書無しさん:03/06/01 05:27
>>971
<body background='bakku.jpeg onload="init();"'>
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<
body background=
'bakku.jpeg onload="init();"'
>

騙し絵みたいなもんやな…。

988 :仕様書無しさん:03/06/01 07:50
こういう会議よくあるね・・・

989 :仕様書無しさん:03/06/01 13:17
>>978が一番マヌケだ。

990 :仕様書無しさん:03/06/01 13:21
<STRONG>'</STRONG>なんてどういう神経してるかわかんない。まじで。


991 :仕様書無しさん:03/06/01 13:34
ああ、あのカブトムシがモチーフのね

992 :仕様書無しさん:03/06/01 16:27
天が呼ぶ 地が呼ぶ 人が呼ぶ

993 :992の続き:03/06/01 16:43
退治てくれよう桃太郎

994 :仕様書無しさん:03/06/01 16:57
近所のTSUTAYAにあったスカイライダー(なぜか1巻と7巻のみ)
両方借りられてた。だれだよ俺以外にそんなの観たがるやつ。

995 :仕様書無しさん:03/06/01 17:01
>>994
夜のお前だ。

家の中をよく探してみろ。

996 :仕様書無しさん:03/06/01 18:50
sageてみる

997 :仕様書無しさん:03/06/01 18:50
あと4つ

998 :仕様書無しさん:03/06/01 18:51
あと3つ


999 :仕様書無しさん:03/06/01 18:52
あと2つだけど
俺が1000とったら速攻dat行きだ。
どうしよう

1000 :仕様書無しさん:03/06/01 19:07
1get

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

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

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)