卡卷网
当前位置:卡卷网 / 每日看点 / 正文

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

作者:卡卷网发布时间:2024-12-12 00:27浏览数量:99次评论数量:0次

极致の交换

// 常规选手 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)))

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

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

最后分享一句老话:

任何人都能写出计算机能看懂的代码,但只有好程序员才能写出人能看懂的代码。
END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码