当前位置:首页 >> 每日看点 >> c语言有哪些写法让人眼前一亮?

c语言有哪些写法让人眼前一亮?

卡卷网 每日看点 146

极致の交换

// 常规选手 temp = a; a = b; b = temp; // 装逼选手 a ^= b ^= a ^= b;

有没有一种忍者的感觉?这就是传说中的异或交换法。但我劝各位保重,在生产环境这么写,怕是会被同事打死(狗头)。

一行判断2的幂

return n > 0 && !(n & (n-1));

这操作说出来你可能不信,它竟然在Linux内核中广泛使用。为啥这么写?因为2的幂的二进制表示只有一个1,比如2(10),4(100),8(1000)。

终极の三目运算符

return printf("%d", n ? n < 0 ? -n : n : 0);

看到这种代码,要么是在写代码竞赛,要么就是想被同事暗杀。

花式求绝对值

#define abs(x) (((x)>>31&1)*(-(x)<<1)+(x))

这操作属于是把位运算玩出了花。但说实话,还不如老老实实用标准库的abs(),可读性才是第一生产力啊!

骚气の循环右移

#define ROTATE_RIGHT(x,n) ((x>>n)|(x<<(32-n)))

这个技巧经常出现在加密算法里,一行代码实现循环右移,属于是纯纯秀操作了。

虽然这些技巧确实很秀,但代码的终极目标是还是可维护性,清晰>装逼,毕竟谁也不想看到别人的代码一脸懵逼,最后发现只是在秀操作而已。

最后分享一句老话:

任何人都能写出计算机能看懂的代码,但只有好程序员才能写出人能看懂的代码。
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。
最新文章
热门文章
随机文章