アカウント名:
パスワード:
void die(e,s) int e; char *s; { substdio_putsflush(subfderr,s); _exit(e); }
とか。なんでこんなにしてまで1行にしなきゃいけないんだろう。 難読プログラムコンテストにでも出す気なのか? これ(qmail-smtpd.c)なんて
void straynewline() { out("451 See http://pobox.com/~djb/docs/smtplf.html.\r\n"); flush(); _exit(1); }
読みにくいのもそうだけどサイトのURLが変わったらどうすんのよ。 それだけでバージョンアップ? 他に気になる点は
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
qmailのソースが (スコア:3, おもしろおかしい)
ちらっと見てみたら確かにすごい!!
適当に開いてみたtcpto.cの96行目当たりから
lastwhen = (unsigned long) (unsigned char) record[11];
lastwhen = (lastwhen lastwhen = (lastwhen lastwhen = (lastwhen when = now();
プログラミング初心者の私がいうのも何なんですが
その他の例 (スコア:3, 参考になる)
例えば、qsmhook.cの
とか。なんでこんなにしてまで1行にしなきゃいけないんだろう。
難読プログラムコンテストにでも出す気なのか?
これ(qmail-smtpd.c)なんて
読みにくいのもそうだけどサイトのURLが変わったらどうすんのよ。
それだけでバージョンアップ?
他に気になる点は
--------------------
/* SHADOWFIRE */
Re:その他の例 (スコア:2, 興味深い)
if( x ) if ( y ) { ... }
って if( x && y ) { ... }
と同じじゃないんでしょうか(マクロで書くなら気をつけなきゃいけませんが)。
スタンダードではないですがある意味深いカッコがへっていいような気もするので、少なくとも「スタンダードでないからダメ」以外の理由でそんなに理に叶って
Re:その他の例 (スコア:0)
> って if( x && y ) { ... }
> と同じじゃないんでしょうか(マクロで書くなら気をつけなきゃいけませんが)。
上のコードではxの評価が必ずyの評価よりも先になります。下の場合はどちらの評価が先になるか分かりません。
Re:その他の例 (スコア:0)
if (p && p->x) { ... }
と書けないことになるじゃないですか。
Re:その他の例 (スコア:1)
>と書けないことになるじゃないですか。
C言語の場合,
結合規則(?)で「 x && y && z は, ( x && y ) && z と評価する.」とはあるけど,
「 && は,左オペランドを先に評価する.」と決まってました?
# if( x ) if( y ) { ... }
# と書けば,必ず x が先に評価されてから y が評価されるので,
# 評価の順番が明確になります.
Re:その他の例 (スコア:0)