你見過“最美”的C語言代碼是什么?
關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容
ID:技術(shù)讓夢(mèng)想更偉大
作者:李肖遙
我們都知道雷軍雷布斯說過當(dāng)時(shí)他寫的代碼像詩一樣優(yōu)美,那已經(jīng)是三十年前的匯編時(shí)代了,那么現(xiàn)在你有見到過最美的c語言代碼嗎?
我在網(wǎng)上收集了一些代碼,供大家賞詩,其中我本人最喜歡最后一個(gè)。
- 這是我找到最多的答案,估計(jì)是程序員想自黑還是說這個(gè)帶大家步入了代碼的世界。
#include?
int?main(void)?
{?
??printf("Hello,World");?
??return?0;
}?
- 代碼的運(yùn)行結(jié)果是代碼本身
char*?f?=?"char?*?f?=?%c%s%c;main(){printf(f,34,f,34,10);}%c";
main()
{
????printf(f,34,f,34,10);
}
編譯結(jié)果如下:

- 匯編留下來的小技巧
#define?STATE_TABLE?\
????????ENTRY(STATE0,?func0)?\
????????ENTRY(STATE1,?func1)?\
????????ENTRY(STATE2,?func2)?\
????????...
????????ENTRY(STATEX,?funcX)?\
enum
{
??#define?ENTRY(a,b)?a,
??????STATE_TABLE
??#undef?ENTRY
??????NUM_STATES
};
p_func_t?jumptable[NUM_STATES]?=
{
??#define?ENTRY(a,b)?b,
??????STATE_TABLE
??#undef?ENTRY
};
#define?ENTRY(a,b)?static?void?b(void);
????STATE_TABLE
#undef?ENTRY
- 用來獲取函數(shù)中的可變參數(shù),具體用法可參加printf的源碼實(shí)現(xiàn)
typedef??char?*??va_list;???
#define?_INTSIZEOF(x)?((sizeof(x)+?sizeof(int)-?1)?&?~(sizeof(int)?-?1))
#define??va_start(ap,v)??(?ap=?(va_list)&v+?_INTSIZEOF(v)?)
#define??va_arg(ap,t)??(?*(t?*)((ap?+=?_INTSIZEOF(t))?-?_INTSIZEOF(t))?)
#define??va_end(ap)????(?ap?=?(va_list)0?)
- 這是算64位里有多少個(gè)bit是1的
const?uint64_t?m1??=?0x5555555555555555;?//binary:?0101...
const?uint64_t?m2??=?0x3333333333333333;?//binary:?00110011..
const?uint64_t?m4??=?0x0f0f0f0f0f0f0f0f;?//binary:??4?zeros,??4?ones?...
const?uint64_t?m8??=?0x00ff00ff00ff00ff;?//binary:??8?zeros,??8?ones?...
const?uint64_t?m16?=?0x0000ffff0000ffff;?//binary:?16?zeros,?16?ones?...
const?uint64_t?m32?=?0x00000000ffffffff;?//binary:?32?zeros,?32?ones
int?popcount64a(uint64_t?x)
{
????x?=?(x?&?m1?)?+?((x?>>??1)?&?m1?);?//put?count?of?each??2?bits?into?those??2?bits?
????x?=?(x?&?m2?)?+?((x?>>??2)?&?m2?);?//put?count?of?each??4?bits?into?those??4?bits?
????x?=?(x?&?m4?)?+?((x?>>??4)?&?m4?);?//put?count?of?each??8?bits?into?those??8?bits?
????x?=?(x?&?m8?)?+?((x?>>??8)?&?m8?);?//put?count?of?each?16?bits?into?those?16?bits?
????x?=?(x?&?m16)?+?((x?>>?16)?&?m16);?//put?count?of?each?32?bits?into?those?32?bits?
????x?=?(x?&?m32)?+?((x?>>?32)?&?m32);?//put?count?of?each?64?bits?into?those?64?bits?
????return?x;
}
以上代碼來自www.wikipedia.org?
鏈接:
https://en.wikipedia.org/wiki/Hamming_weight#Efficient_implementation
- kernel 鏈表 list 操作代碼的一部分
linux kernel中最重要的迭代方法,很巧妙,通過一個(gè)結(jié)構(gòu)體的成員指針獲取結(jié)構(gòu)體本身的指針,一個(gè)計(jì)算偏移,一個(gè)計(jì)算首地址,Linux內(nèi)核或驅(qū)動(dòng)開發(fā)常遇見。
#define?offsetof(TYPE,?MEMBER)?((size_t)?&((TYPE?*)0)->MEMBER)
#define?container_of(ptr,?type,?member)?({??????????\
????const?typeof(((type?*)0)->member)*__mptr?=?(ptr);????\??
????(type?*)((char?*)__mptr?-?offsetof(type,?member));})
#define?list_entry(ptr,?type,?member)?\
????container_of(ptr,?type,?member)
- linux里面對(duì)鏈表的操作見到過 DO_SOMETHING 只是我做例子取的一個(gè)macro名字;do_something() 并不是一行,可能是很多行,很多處理邏輯。
#define?DO_SOMETHING()???do?\
{\
????do_something();\
}while(0)
DO_SOMETHING();
- 首屆IOCCC比賽中的一個(gè)代碼
由于年代久遠(yuǎn),看不到這段代碼到底有什么效果,于是寫了個(gè)可以在windows下編譯運(yùn)行的代碼。
short?main[]?=?{
?277,?04735,?-4129,?25,?0,?477,?1019,?0xbef,?0,?12800,
?-113,?21119,?0x52d7,?-1006,?-7151,?0,?0x4bc,?020004,
?14880,?10541,?2056,?04010,?4548,?3044,?-6716,?0x9,
?4407,?6,?5568,?1,?-30460,?0,?0x9,?5570,?512,?-30419,
?0x7e82,?0760,?6,?0,?4,?02400,?15,?0,?4,?1280,?4,?0,
?4,?0,?0,?0,?0x8,?0,?4,?0,?',',?0,?12,?0,?4,?0,?'#',
?0,?020,?0,?4,?0,?30,?0,?026,?0,?0x6176,?120,?25712,
?'p',?072163,?'r',?29303,?29801,?'e'
};
不用加頭文件就可以編譯的,這段代碼主要是彈出一個(gè)消息框做演示如下
double?main[]?=?{
-2.4701240043063294e-255,7.0200995176637059e-269,
1.7039916353015322e-248,
2.0829486981857065e-017,3.1678173412277654e-152,
1.4561366983095816e-300,
2.8652426426650795e+161,1.1610765287701034e+200,
-1.1126115309662626e+034,
2.5955200557858144e-303,5.3745432333120549e+196,
3.2709387181673304e+228,
-7.1518888970417846e+161,-1.7905983542158763e+305,
1.0622411385586801e-321
};
- 也有說到菲波那契
int?fibonacci(?int?n?)?
{?
??return?fib_iter(?0,?1,?n?);?
}
int?fib_iter(?int?a,?int?b,?int?n?)?
{?
??return??n????fib_iter(?b,?a+b,?n-1?)?:?b;?
}
- 最后這個(gè)
#include?
int?main(void)
{
????//for?(?;?;?);?
????printf("I?Love?You!");
????return?0;
}
如果感興趣的可以繼續(xù)深入編譯了解一下,拋磚引玉,意在引起大家的興趣。

推薦閱讀:嵌入式編程專輯Linux 學(xué)習(xí)專輯C/C++編程專輯
關(guān)注微信公眾號(hào)『技術(shù)讓夢(mèng)想更偉大』,后臺(tái)回復(fù)“m”查看更多內(nèi)容,回復(fù)“加群”加入技術(shù)交流群。
長按前往圖中包含的公眾號(hào)關(guān)注
評(píng)論
圖片
表情
