最近みたひどいコード

最近アレなコードを見ることが多い。

#define BUFF_MAX 15

char buff[BUFF_MAX];

for (i = 0; foo(); i++) {
    if (i > 40) {
        fprintf(stderr, "too many characters.\n");
        exit(-1);
    }

    buff[i] = bar();
    // do something
}

そのまま出すのはあれだからだいぶ簡略化しているけど、こんな感じ。ちなみに、gccで最適化オプションつけないと何事もなかったように実行できるからたちが悪い。gcc -O2 だと見事に Segmentation fault でおちるけど。
あと、下みたいなのもあった。

void foobar(char *s) {
    int i;
    for (i = 0; i < strlen(s); i++) {
        // do something.
    }
}