c语言复杂的程序代码,混乱的C语言!是不是每个程序员都有把源代码弄复杂的潜质?...

在网上看到这篇介绍混乱C语言的文章!展现了程序员幽默的一面,细细体会挺有意思的!哈哈,写在这自己收藏了!(后面是一片实现混乱C的教程,教你如何将自己的代码写的自己都看着晕,哈哈哈)

f79ae6c2c87a57c983452797083cca84.png

下面的六个程序片段主要完成这些事情:

输出Hello, World

混乱C语言的源代码

下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编译通过。

hello1.c

55e47215721e15f5be3241550c151de2.png

hello2.c

0d2b122d7398fd3c757ed200e9e10d51.png

hello3.c

d9460487bc64e236883a8b6ed0ff4801.png

hello4.c

ca33b69ef8e4612ea4715064dd0ad53a.png

hello5.c

07645f92730f2387361c8c2d330b32e6.png

hello6.cpp

下面的程序只能由C++的编译器编译(比如:g++)

f9af371c0cd8ecb7021ade58ec6de3d0.png

下面是一个Step by Step的教程,教你如何把一个清晰的代码变得复杂难懂的。当然,这只是一个“简明教程”了。还是那句话——“本文仅供朋友们“消遣作乐”,如果你要觉得有意思的话,顶个贴。如果你觉得没什么意思的话,一笑了之。仅供娱乐而已,不必太过认真。”

开始程序

下面是一个找出素数的程序:

82afc13bec2ff2c556db9924bc4007b2.png

下面我们来看看如何把上面这段代码搞得复杂难懂。

第一步、把for变成while

通常来说,for循环要以while循环简单一些,上面的程序有二重for循环,我们不但要把其变成while循环,而且还要把二重循环的变成一重的循环,然后使用大量的if-else语句来判断。

09d429e19e19861ee2cde5cbbf25d989.png

第二步,把循环变成递归

递归在某些时候是可以把代码变得简单,但大多数的情况下是把代码变得复杂,而且很没有效率。下面是把上面的while循环变成了递归。变成了递归后,函数的参数都变成3个了。

79016be9644aa6905ae64123e197378e.png

第三步,弄乱代码结构/使用没有含义的变量名

关于如何弄乱代码结构,其中一个小技巧是,使用“?”表达式代替if-else语句。

a7f2be44f1a7b1c6a473446c7ad3a451.png

第四步,取消临时变量

临时变量一般用来保存反复使用的一个表达式的值。使用大量重复的表达式来取消这些临时变量的也可以让代码复杂起来。

66803e4288053e6183b6c3f0be2fd648.png

第五步,继续弄乱变量名

我们知道,下划线是合法的变量名,所以,我们不妨用__,___,____来代替m,t,c。函数名也可以使用下划线来代替。让我们来看看求素数的函数能变成什么。

bb06f7b4fd19d5bc274a5ae4f32b33ef.png

第六步,移除常量

在上面的程序中,还有一些常量,你可以通过增加一个宏定义,或是增加一个函数的形参来取代这一常量。

e691b18395bbc1c430b7ea7905ac4d9b.png

程序到这里应该差不多了。还是那句话——“每一个程序员都有把源代码弄复杂的潜质”,大家耗子尾汁。

以上就是我的分享,有什么问题欢迎大家评论区留言。

1e694f71f3c8501e645137e451109ee6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值