概述
The International Obfuscated C Code Contest
國際難以理解C程式大賽
誰說我們編程式一定要遵循一定的編碼規則?你是否使用過“匈牙利命名法”,“GNU coding style”,“Linux kernel coding style”。它們都說自己的方式好,別人的不好。但是看看 IOCCC 大賽的程式,你就知道最糟糕的編碼規則也能寫出很好的程式 :)
大賽網址
http://www.ioccc.org
IOCCC 的大賽忠旨
IOCCC 的比賽忠旨就是:
在遵守下面規則的前提下,寫出最混亂,最讓人看不明白的C程式。
用諷刺的手法顯示編程風格的重要性。
用反常的代碼加重編譯器的負擔。
演示C語言的不讓人注意的地方。
為糟糕的C代碼提供避難所。
===========================
The C language combines all the power of assembley language with all the ease-of-use of assembly language.
------Ancient Peasant Proverb
用任何一種程式設計語言都可以寫出讓人很難讀懂,甚至根本讀不懂的程式,但是用c好像更容易寫出這樣的程式。Landon Curt 和 Larry Bassel 在USENET 上舉辦了 The International Obfuscated C Code Contest(國際C語言混亂代碼大賽,IOCCC), 大賽每年舉行一次,冬季接收參賽作品,春季進行評判,在夏天的Usenix會議上公布獲勝者。
Goals of the Contest:
To write the most Obscure/Obfuscated C program under the rules below.
To show the importance of programming style, in an ironic way.
To stress C compilers with unusual code.
To illustrate some of the subtleties of the C language.
To provide a safe forum for poor C code. :-)
大賽通常具有10種類型的獲勝者:“對規則的最奇怪的濫用”,“最具創意的原始碼布局”,“最優秀的單行代碼”等等。綜合性的“最佳上鏡獎”授予最難閱讀、行為最古怪(但能運行)的c程式的作者。
1987年 貝爾實驗室的 David Korn 提交了下面這個獲獎作品:
main()
{
printf( &unix【"\021%siz\012\0"】, (unix)【"have"】 + "fun" - 0x60);
}
能看出它要列印什麼嗎?^_^它要列印的東西與have fun 沒有任何關係!來自倫敦大學的Diomidis Spinellis只用了大約1500個字元就完成了一個BASIC解釋器,該程式附有一個指導手冊,解釋了如何使用解釋器,並提供了一個程式實例!
關於IOCCC的詳細信息可以參看其主頁:
http://www.ioccc.org/
ps: the result of the above tiny program is : uniz
(以上內容部分選自 Expert c Programming , Deep c Secrets)