09/01/29 07:51:40
ちょっとコメントの内容に悩んだコードを晒してみる。
--
//締日の前々月を算出する
shimebi.addMonth(-1);
~ここに200行ぐらい別のコード~
if(shimebi < today) {
message("前々月度以前のデータは更新不可だよー");
}
--
最初、「前々月を算出って言ってるのになんで addMonth(-1)?」
とか思ったが、よく読むと下の方で <演算子で判定していたというオチ。
確かにコード全体で見れば「前々月」以前かを判定しているんだけどね……
うーん、人が書いたコメントを読むのって難しい。
っていうか、コードをよく読まず addMonth(-2)に書き換えて、
バグが出てから初めて気づいた俺がバカなだけか。
595:仕様書無しさん
09/01/29 11:08:29
文末の記号ひとつを見落とすと、長文の頭に書いてあることの
真意が伝わらなくなるってことでしょ。
間違ってはいないが悪文とか言われそうですな。
書いた方にも問題はあると思いますがね。
596:仕様書無しさん
09/01/29 12:32:37
変数名「締め日」に締め日じゃない日付を入れるというのが
気持ち悪いなあ
597:仕様書無しさん
09/01/29 20:16:53
動いているソースは変えるな!
598:仕様書無しさん
09/01/29 22:10:21
>597
バグが出なきゃ好き好んで弄ったりしねーよ
599:仕様書無しさん
09/01/30 20:15:01
でもスパゲティみたら直したくならね?
600:仕様書無しさん
09/01/30 23:29:57
>>599
スパゲティ見る
↓
直す
↓
おかしくなる
↓
スパゲティになる
無限ループこわくね?
601:仕様書無しさん
09/01/30 23:56:24
スパゲティを自分で作って自分でハマって去って行った人なら見たことある。
そのソースを直す羽目になったけど、仕様と全く異なっていて何がしたかったのか理解不能だった。
コメントとソースが全く違っているし。あれを読むのは苦行だった。
602:仕様書無しさん
09/02/18 23:06:57
//↓なんだこりゃ。無駄なromつかうんじゃねーよ。
//static int a=0;
//static int b=0;
//static int c=0;
//static int d=0;
//0にならないことも有るんですよ!。
static int a=0;
static int b=0;
static int c=0;
static int d=0;
こんな感じだったな。0にならないのはC言語じゃないよな。
603:仕様書無しさん
09/02/18 23:48:54
Cなら0になることが保証されてたような気がする。
そうでないなら(かつ初期化が必要なら)書かなくてはならないし、
最初から0になるのならどうせ最適化で消える。
書いておいて問題ないんじゃね?
604:仕様書無しさん
09/02/18 23:51:36
//↓なんだこりゃ。無駄なromつかうんじゃねーよ。
//static int a=0;
//static int b=0;
//static int c=0;
//static int d=0;
//0にならないことも有るんですよ!。
//static int a=0;
//static int b=0;
//static int c=0;
//static int d=0;
//↑Cなら0になるんだよ!
605:仕様書無しさん
09/02/18 23:57:44
/* ダボースラッシュ使うな!プリプロセッサが認識しねーんだよヴォケ! */
#if UNKO
//↓なんだこりゃ。無駄なromつかうんじゃねーよ。
//static int a=0;
//static int b=0;
//static int c=0;
//static int d=0;
//0にならないことも有るんですよ!。
//static int a=0;
//static int b=0;
//static int c=0;
//static int d=0;
//↑Cなら0になるんだよ!
#endif
606:仕様書無しさん
09/02/19 01:21:01
無駄なromうんぬんってことは組み込みだろ。
C仕様に沿った初期値0になる環境を
作るのはマの仕事だからなぁ。
スタートアップルーチンがいい加減だったり、なかったり、走る以前の箇所だったり、
メモリが少ないor処理時間が足りないシステムで端折ったりすると
0になる保証がない。
607:仕様書無しさん
09/02/19 01:33:45
決まりごとを守っていないせいで、出来合いのスタートアップが
ちゃんと初期化してくれなかった。
というのをコンパイラのバグと言ってくれるのがいた。
608:仕様書無しさん
09/02/20 00:02:41
winしかやったことない奴が組み込みにくると、こういう傾向が有る。
フフフフフフ
609:仕様書無しさん
09/02/20 00:31:37
ガリでも食ってろフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
610:仕様書無しさん
09/02/20 20:51:43
/* kokokara black box */
611:仕様書無しさん
09/02/27 11:13:48
デフォルトの初期値が 0 とされている変数を 0 で初期化する記述って、
コンパイラの最適化でrom喰わないコードにならないのかな?
・・・最適化オプションが無い(らしい)コンパイラなんてのもあるんだったな・・・。
612:仕様書無しさん
09/02/27 11:52:50
>>611
実行する時点での変数の値は直前に代入でもない限り
予測できないわけで。
動的解析でもかければある程度は出来るかもしれんが、外部入力が
からんだらそれも不可能だろう。
613:仕様書無しさん
09/02/28 03:55:17
>>611
モノによると思うけど領域最適化されるよ。
614:仕様書無しさん
09/02/28 23:56:03
cobolはされないでち
615:仕様書無しさん
09/03/01 19:58:35
まぁ int a = 0 とか書いてから
本処理に移るコードの方が後から弄る方は気が楽
ヘタに省略されてるとトラブった時に面倒
616:仕様書無しさん
09/03/23 22:51:43
いまどきのCコンパイラならコンパイルオプションで
スラスラをコメント化できるっしょ
617:仕様書無しさん
09/03/24 03:43:57
組み込み系だとC89どまりのコンパイラも多いがな
618:仕様書無しさん
09/03/24 18:40:58
つか、今さらC99なんか普及すんのか?
C++0xよりはマシだろうけど。
619:仕様書無しさん
09/03/27 16:06:17
返値 がことごとく「返り血」になっていた
面白くないな。
620:仕様書無しさん
09/03/27 16:24:24
>>619
新人初日に返り血発言して笑われたよ。
返値で通用するとはすごい現場ですね。
621:仕様書無しさん
09/03/27 17:59:15
戻り値を戻す
戻り値を返す
返り値を戻す
返り値を返す
さて、一番いいのはどれだ?
622:仕様書無しさん
09/03/27 19:28:14
返却値
623:仕様書無しさん
09/03/27 22:12:55
値を返す(戻す)
だろJK
624:仕様書無しさん
09/03/28 03:34:42
俺は「あたい」のことを「ち」と読んでたよ。
「ちがTrueの場合は……」とか「ちを文字列型に変換して」とか
普通に言ってた。
625:仕様書無しさん
09/03/28 04:12:12
おまえのちは何色だぁ!
626:仕様書無しさん
09/03/28 05:51:45
色だけに、塗るぽ
627:仕様書無しさん
09/03/28 06:47:58
>>626
画ッ
628:仕様書無しさん
09/03/28 10:59:13
返り血というくらいだから、赤か黒
629:仕様書無しさん
09/03/28 12:22:05
この青い血、ああおいち~ by 吸血鬼
630:仕様書無しさん
09/03/28 14:30:56
この~値 何の値 気になる値
名前も知らない 値ですから
中身もわからない~ 値に~なるでしょう♪
631:仕様書無しさん
09/03/28 14:55:12
つまり Variant
632:仕様書無しさん
09/03/28 18:36:22
>>624の蒔いた種が、こんなにたくさんの実をつけました。
633:仕様書無しさん
09/03/30 19:06:14
おやおや、このアタイを返そうってのかい? 10年早いよボウヤ。
634:318
09/03/31 00:42:11
>>632
そして寒さのあまり、みな枯れていくのです…
635:仕様書無しさん
09/04/30 03:35:31
文字列中の不要な制御コードを削除するためのメソッドにあったコメント。
// 文字をキレイにする
デバッグログの出力結果があまりにも長くなることが想定されるために
デバッグログ出力の記述がコメントアウトされた箇所にあったコメント。
// 出力しちゃダメ!(長くなりすぎるので)
おにゃのこが書いたコード。
なんか萌えた。
636:仕様書無しさん
09/04/30 07:06:49
// 出しちゃダメ!
に見えた
637:仕様書無しさん
09/04/30 10:08:09
そこは
// 出しちゃらめぇぇぇぇぇ><
にs
638:仕様書無しさん
09/04/30 10:18:26
なぜかすぐにキモい方向に行くのな
639:仕様書無しさん
09/04/30 12:36:19
そりゃお前、欲求不満の連中ばっかりなんだから
俺もだが
640:仕様書無しさん
09/04/30 19:11:12
別に不思議ではないな
641:仕様書無しさん
09/04/30 22:25:31
メソッド名1つでヌけるようになりゃ一人前よ
642:仕様書無しさん
09/05/01 12:29:43
>>641
そして賢者モードで神コーディングですか
643:仕様書無しさん
09/05/06 15:54:32
>642
その発想力を別のところで使え
644:仕様書無しさん
09/05/17 02:25:13
// すまないなあ、おみよ。
// いいんですよ、おとっつぁん。
// へっへっへ、とめ吉んちはここかい?
// なんです、おまいさんたちはっ!
// へっへっへ、あがらせてもらうぜぇ!
// ごほごほっ!
// おとっつあんはいま病気なんです!
// しゃらくせぇやい!
// ごほごほげほごほげほごほげろげほごほごほっっ!!
// きゃ~!
// おぅおぅおぅ!待ちやがれっっ!
// な、なんでぇてめえは!
// 呼び出し元に戻る
645:仕様書無しさん
09/05/17 02:26:07
// おのれ!agaっておったか!
646:仕様書無しさん
09/06/05 13:07:50
// 大胸筋矯正サポーター
ブラじゃないよぉぅ
647:仕様書無しさん
09/08/16 20:52:09
log_D(old); // log_D関数はログを出力しないのに、仕様では消したら駄目らしい。
check_mode = set_check_mode(NOCHECK); // なぜか作業領域を共有しているので、こうしないといけないらしい。
result = input_check(old, &check_mode); // 妙な仕様だが、変えられないようだ。
new = get_new_data(&result); // こんなのばかりでもう嫌だあああああああああああああああああああああああ
変な仕様についに切れたようですね、、、
648:仕様書無しさん
09/09/08 00:29:52
// この画面仕上げると仕事がないので、メソッドを追加しました
649:仕様書無しさん
10/03/17 11:15:44
あげ
650:仕様書無しさん
10/03/18 09:38:15
}
else {
/* どう考えてもありえない
到達に成功したそこのキミ!修正よろしく!
*/
return NULL;
}
到達しちゃったんですが・・・
651:仕様書無しさん
10/03/18 11:01:37
>>650
まあそういうコメントを書く時点で
本当は「どう考えてもありえない」とは思ってないわな
ていうか本当ありえないなら return NULL じゃなくて例外投げればいいのに
652:仕様書無しさん
10/03/18 11:25:35
EXITCOBOL.
*
* このプログラムは完全である。処理に問題は無い。
*
というプログラムがオープンセレモニーで落ちたことがある。
653:仕様書無しさん
10/03/18 12:47:23
そういうとき関係者はどういう行動をとるの? とりあえず逃げる?
654:仕様書無しさん
10/03/19 17:58:09
//あああっ!
どうした?何があった?
655:仕様書無しさん
10/03/19 21:03:07
//女神さまっ
656:仕様書無しさん
10/03/19 21:48:50
あ が一つ多いぞ
657:仕様書無しさん
10/03/24 22:11:07
プログラムとかは論理的な思考ができるインテリじゃないとできないからHAL生は人気だよ
モードとかはバカが多いからHAL生に群がるらしい