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年。作者要求匿名殷蛇。
通常情況下实夹,請(qǐng)使用縱向和橫向的空白×C危縮進(jìn)和空格應(yīng)該反映代碼的塊結(jié)構(gòu)亮航。例如,在一個(gè)函數(shù)定義與下一個(gè)函數(shù)的注釋之間匀们,至少應(yīng)該有兩行空白缴淋。
如果一個(gè)條件分支語(yǔ)句過(guò)長(zhǎ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))
{
...
類(lèi)似地重抖,復(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)鍵字后面有放在括號(hào)內(nèi)的表達(dá)式時(shí),應(yīng)該使用空格將關(guān)鍵字與左括號(hào)分隔(sizeof操作符是個(gè)例外)讹剔。在參數(shù)列表中油讯,我們也應(yīng)該使用空格顯式 的將各個(gè)參數(shù)隔開(kāi)。然而延欠,帶有參數(shù)的宏定義一定不能在名字與左括號(hào)間插入空格陌兑,否則C預(yù)編譯器將無(wú)法識(shí)別后面的參數(shù)列表。