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)))
这个技巧经常出现在加密算法里,一行代码实现循环右移,属于是纯纯秀操作了。
虽然这些技巧确实很秀,但代码的终极目标是还是可维护性,清晰>装逼,毕竟谁也不想看到别人的代码一脸懵逼,最后发现只是在秀操作而已。
最后分享一句老话:
任何人都能写出计算机能看懂的代码,但只有好程序员才能写出人能看懂的代码。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:会写递归超越了多少程序员?
- 下一篇:vue为什么那么难?
相关推荐

你 发表评论:
欢迎