前言
本文首发于公众号【一名打字员】
在工作中,我们通常会遇到传说中的“祖传”代码,有些是否让我们感到哭笑不得,今天本猿整理一下自己以及网络上出现过的奇葩代码。来源于互联网的均会标明出处。
TOP1
当仁不让的当然是传说中的“睡排序”,/手动捂脸
#include <chrono>
#include <iostream>
#include <thread>
#include <vector>
int main(int argc, char* argv[]) {
std::vector<std::thread> threads;
for (int i = 1; i < argc; ++i) {
threads.emplace_back([i, &argv]() {
int arg = std::stoi(argv[i]);
std::this_thread::sleep_for(std::chrono::seconds(arg));
std::cout << argv[i] << std::endl;
});
}
for (auto& thread : threads) {
thread.join();
}
}
当然他输出的结果是
./a.out 8 15 14 9 17 20 16 24 6 24 21 23 19 23 19
6
8
9
14
15
16
17
19
19
20
21
23
23
24
24
本猿觉得,其实除了名称奇葩以外,其它还是很正常的。(逃
from WIKI
TOP2
拼写容错,在知乎上看到的,23333…
#define ture true
#define flase false
#define viod void
from B乎
TOP3
变量命名是个体力活,常年混迹GITHUB(复制粘贴代码)的本猿,看过太多各种各样的命名了。我发现一个规律,小公司或者外包公司的打字员们,通常因为进度问题(当然也有可能有其它原因,我不管我不管),在一个函数方法内部会出现这样的命名。int a=0,aa=0,aaa=0,b=0,bb=0,bbb=0,c=0,cc=0,ccc=0
,还有这样的
enum color{
black,//黑色
hong //红色
}
这位打字员,你是不知道红色的英文是啥吗还是要搞事情啊….
TOP4
是时候祭出当年我为代码开光的注释了:
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
. ' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
.............................................
佛祖保佑 永无BUG
说起来,早些年我的代码里还是有很多这种注释的。2333
移步GITHUB
TOP5
在这里推荐一个网站,上面有很多这种好玩的东西,比如说下面这种
from xkcd
结语
大家平常有遇到啥好玩的东西或者是想要完成什么功能都可以发给【一名打字员】,本猿一定让你很满意的。最后希望大家都能写出没有bug的代码,一次编译一次通过。(逃