Pei_Useless Pei_Useless 2012-09-16 23:38:01

[C] 何がしたかったのか このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

10年位前、炎上しているプロジェクトの支援に入って最初に見たコードです。
こんなコードが大量に存在し、1年近く燃え続けました。

void funcX() {
    int a;
    a = funcB();

    if( a = 0 ) {
        funcA();
    } else {
        funcA();
    }
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(17)

#1 DsYochibe DsYochibe 2012-09-16 23:57:08  

a=0だと…?

#2 ekykwan ekykwan 2012-09-17 00:01:44  

どこから突っ込めばいいかわからない

#3 Chiether Chiether 2012-09-18 10:23:33  

こういう事があるから 0 = a と定数を左にしようぜって言われるんだよなぁ……。ところでコンパイラさんは、警告吐かないんで?

#4 okadabasso okadabasso 2012-09-18 16:48:01  

最近Cコンパイラー使ってないけど警告してくれた気がするんだがなあ

#5 coratue coratue 2012-09-22 22:57:04  

5~8行目の所って…まったく意味ないですよね? あと funcB(); が気になる

#6 math_neko math_neko 2012-09-22 22:59:47  

ツッコミどころが満載過ぎる。funcB が返す値で分岐させると見せかけて分岐になってないうえに a に代入した funcB の返り値がご臨終という…まさにウンコード

#7 Miraranran Miraranran 2012-10-03 23:13:31  

分岐、どっちもfuncAなの?これは誤植?ガチ? いや、機能してないから結果どっちでもいいんだけどね。

#8 DrFaust DrFaust 2012-10-07 20:05:17  

糞コードってよりは、ケアレスミスによるバグかな

#9 BlackerPanda BlackerPanda 2012-10-08 23:36:30  

ifいみねえええ!!

#10 P_Sakaduki P_Sakaduki 2012-10-09 20:00:25  

何故ifを使った?wしかも代入してるしw

#12 kaicohen kaicohen 2012-10-11 22:53:46  

ううん……。

#13 Equation0909 Equation0909 2012-11-12 23:44:24  

必ず、何が何でもfuncA()を通さないといけないのですね、はいわかります。

#14 lighter_mt lighter_mt 2012-11-17 10:55:08  

代入以前にif文自体が必要ないよね…

#15 komamonodaisuki komamonodaisuki 2015-03-14 17:00:37  

コンパイル通るの?これ

#16 cp30ba cp30ba 2016-06-14 21:44:43  

くっさ!

#17 doscoy33 doscoy33 2016-06-15 13:07:36  

0? funcA():0? funcA():0? funcA():0? funcA():funcA();

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[C] すげーちゃんと動く!

このエントリーをはてなブックマークに追加

結合試験2日前に脱退したうんkプログラマ...

return 0;

鑑賞する »

[C] ×有限ループ ◯無限ループ

このエントリーをはてなブックマークに追加

有限ループのはずが、無限ループに... ...

int i,j;
for(i=0;i<100;i++) {
 for(j=0...

鑑賞する »