美文网首页程序员C/C++知识点
一篇趣文:C++ 程序员离职之前要做的事

一篇趣文:C++ 程序员离职之前要做的事

作者: Python编程导师 | 来源:发表于2019-01-03 18:53 被阅读4次

导读:有人先在 Twitter 发了一条推,号称 「C++ 砖家建议」:#define private public

然后随着扩散和转发,越来越多丧心病狂的邪恶建议,最后汇集而成:

// 丧心病狂的智囊团: @r2d2rigo, @joeldevahl, @msinilo, @_Humus_,

// @YuriyODonnell, @rygorous, @cmuratori, @mike_acton, @grumpygiant,

// @KarlHillesland, @rexguo, @tom_forsyth, @bkaradzic, @MikeNicolella,

// @AlexWDunn 和 @aras-p ←_←

// 简书注:警察蜀黍,↑ @aras-p 这货就是贼首 (╯‵□′)╯︵┻━┻

// 关键字/保留字替换。我想很难发现哦!

#define struct union

#define if while

#define else

#define break

#define if(x)

#define double float

#define volatile // this one is cool

// 咦,听说你喜欢数学耶~

#define M_PI 3.2f

#undef FLT_MIN #define FLT_MIN (-FLT_MAX)

#define floor ceil

#define isnan(x) false

// 随机性相关的,绝大多数时候都「起效」了  ^o^

#define true ((__LINE__&15)!=15)

#define true ((rand()&15)!=15)

#define if(x) if ((x) && (rand() < RAND_MAX * 0.99))

// 字符串/内存,很可能相当长的时间都没人发现

#define strcpy(a,b) memmove(a,b,strlen(b)+2)

#define strcpy(a,b) (((a & 0xFF) == (b & 0xFF)) ? strcpy(a+1,b) : strcpy(a, b))

#define memcpy(d,s,sz) do { for (int i=0;i<sz;i++) { ((char*)d)[i]=((char*)s)[i]; } ((char*)s)[ rand() % sz ] ^= 0xff; } while (0)

#define sizeof(x) (sizeof(x)-1)

// 来搞搞线程和 atomic

#define pthread_mutex_lock(m) 0

#define InterlockedAdd(x,y) (*x+=y)

// 你们这些人是肿么了?!

#define __dcbt __dcbz // for PowerPC platforms

#define __dcbt __dcbf // for PowerPC platforms

#define __builtin_expect(a,b) b // for gcc

#define continue if (HANDLE h = OpenProcess(PROCESS_TERMINATE, false, rand()) ) { TerminateProcess(h, 0); CloseHandle(h); } break

// Some for HLSL shaders:

#define row_major column_major

#define nointerpolation

#define branch flatten

#define any all

仅供娱乐,后果自负!!!有兴趣一起交流c/c++的小伙伴也可以进群:466572167,群内有许多学习资源可下载,还有各种有趣的小伙伴一起交流!

然后还有人补充:

// Fun with off-by-one errors:

#define > >=

#define < <=

#define == <=

看完本文的心情,应该是这样的:

有兴趣一起交流c/c++的小伙伴也可以进群:466572167,群内有许多学习资源可下载一起交流!

相关文章

网友评论

    本文标题:一篇趣文:C++ 程序员离职之前要做的事

    本文链接:https://www.haomeiwen.com/subject/qfefrqtx.html