math_neko 2013-06-05 16:02:18

[C] 恐怖のスパゲッティ このエントリーをはてなブックマークに追加

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

Pastebin.com で見つけた恐怖のスパゲッティコード。ネタバレするとアレなので出力結果は敢えて書かない。ってかこれでコンパイル通るのが解せぬ。

#include <stdio.h>

int main() {
    int i=5;
    switch ( 2 ) {
        case 0:
            for (  i=0; i<10; i++ ) {
        case 1:
            printf("A i=%d\n",i);
        case 2:
            printf("B i*i=%d\n",i*i);
            };
        case 3:
            printf("done");
            break;
    } 

    return 0;
}

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

コメント(6)

#1 3higo3 2013-06-05 23:03:33  

switch文をこーしてbreakさせない手法を使うのはたまにみる。しかしiの初期化は2回しちゃうのか?

#2 jkr_2255 2013-06-06 11:07:23  

C言語だと、caseはラベルでしかないからなあ…

こんな最適化テクニックもあるみたいだけど https://ja.wikipedia.org/wiki/Duff%27s_device

#3 InternalServerE 2013-06-07 05:57:47  

なんと、こんなのが動くのか…。
実行結果は何となく想像がつくものの、自分の期待通りのコードをこの流儀で書ける自信がまったく持てない。すっ飛んでますな。。
久々の胸熱ウンコードをありがとう。

#4 kogaken1 2013-06-09 01:39:09  

7行目for文のiの初期化は使われずにループ条件と更新だけ使ってるような。省略してもOK。 なんか実用に迫られて書いたコードじゃなくて「こんなことも出来ますけどやるなよ!絶対にやるなよ!!」の教材っぽくも見える。

#5 math_neko 2013-06-09 01:56:03  

Pastebin.com に載っていたソースなので、仰る通り「こういう書き方もできるけどやるなよ ! 絶対やるなよ !!」っていう意図で投稿されたんだと思います。私も久々に胸が熱くなりましたw

#6 utubyou009 2017-07-24 19:00:36  

所詮 Cのswitchはgoto文の塊みたいなものさ。forブロックの外から中に飛び込むのは燃える!

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

Twitter認証

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

[その他] 【CSS】結局何をどう表示させたいのか

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

頭の中で何を考えてCSSを書いているのだ...

.hoge{
  color : #030303 ;
  border : ...

鑑賞する »

[その他] HOW TO ABC..

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

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

create table item_master (
 A varchar(2...

鑑賞する »

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

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

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

return 0;

鑑賞する »