int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
- 不光彩的事情,模糊C代碼大賽,1984年。作者要求匿名。
通常情況下,請使用縱向和橫向的空白。縮進(jìn)和空格應(yīng)該反映代碼的塊結(jié)構(gòu)。例如,在一個函數(shù)定義與下一個函數(shù)的注釋之間,至少應(yīng)該有兩行空白。
如果一個條件分支語句過長,那就應(yīng)該將它拆分成若干單獨(dú)的行。
if (foo->next==NULL && totalcount<needed && needed<=MAX_ALLOT
&& server_active(current_input)) { ...
也許下面這樣更好
if (foo->next == NULL
&& totalcount < needed && needed <= MAX_ALLOT
&& server_active(current_input))
{
...
類似地,復(fù)雜的循環(huán)條件也應(yīng)該被拆分為不同行。
for (curr = *listp, trail = listp;
curr != NULL;
trail = &(curr->next), curr = curr->next )
{
...
其他復(fù)雜的表達(dá)式,尤其是那些使用了?:操作符的表達(dá)式,最好也能拆分成多行。
c = (a == b)
? d + f(a)
: f(b) - d;
當(dāng)關(guān)鍵字后面有放在括號內(nèi)的表達(dá)式時,應(yīng)該使用空格將關(guān)鍵字與左括號分隔(sizeof操作符是個例外)。在參數(shù)列表中,我們也應(yīng)該使用空格顯式 的將各個參數(shù)隔開。然而,帶有參數(shù)的宏定義一定不能在名字與左括號間插入空格,否則C預(yù)編譯器將無法識別后面的參數(shù)列表。