最近一直在居家办公,原本对居家办公还心存一丝幻想,想着把一天的工作提前做完,就可以留给自己更多的空间。
然而,当真正居家办公,才体会到其中的心塞与无奈,客户、售后电话的轮番轰炸、同事经常找不到人......等诸多问题,可把我给整麻了
进入正片: 1
!!操作
看到交流群里有朋友抛出一段c语言操作:offset = len/64 + !!(len%64); 这两个连续的感叹号把有些人给整蒙圈了,还有些朋友调侃道: !!表示语气加重,事情非常紧急得尽快处理,可把我给整笑了。其实都是常规操作吧,只是这样的写法在正常的编码过程中并不多见。首先这两个!!并不是什么c语言新的关键字,而是!运算符的嵌套作用。!在c语言中叫逻辑非运算符,是一种条件运算符。 语法形式 : !(条件)
其中的条件如果是false,则最终整个表达式为true;反之则为false,bug菌提醒一句:要与~进行区分,~是按位取反,很多初学者容易混淆。 语法形式 : !!(条件)
所以如上表达式就是两个!的嵌套形式。当然如果你想项目代码中变得无可替代,可以继续如下操作:语法形式 : !!!......!!(条件) 前提是你要自己能看懂。那么回到!!,该操作所达到的效果便是条件逻辑与最终表达式的逻辑结果保持一致: !!(false) == false !!(非false) == true
而对于大部分编译器false对应的是0,而true对应的是1,所以很多同志拿着逻辑结果参与数值运算。 offset = len/64 + !!(len%64);
该表达式的用处也非常清楚了,当len不能被64整除,则: offset = len/64 + 1;
获得正确的数据分组个数,这代码应该是来源于存储或者通信中。但bug菌觉得,尽量还是不要操作:逻辑和数值运算最好是分开,以增加代码的可读性和可移植性。 2
还有个用处
最早看到这种处理方式是在判断一个引脚的高底电平上:
u8gpiolevel = !!(gpioa_data & pin_2);
博通公司推出服务器级ARMv8-A多核处理器架构
超级电容比普通电容的区别
比亚迪碰撞实验室初体验:揭秘5星光环背后的故事
三星正式发布国行布GalaxyA90 5G手机 8+128GB版本售价4699元
半电池和全电池中硅基阳极粘合剂的设计标准
C代码中看到连续“!!”
iphone8什么时候上市最新消息:iphone 8发布在即,iphone7降价让路,苹果8黑科技真多不火算我输!可惜就是太贵了
[原创] NXP PC408x 32位ARM Cortex-M4 MCU开发方案
jenkins自动化部署
我们该如何测试印制电路板的温度
半导体工业之1μm的技术节点
IDTechEx对50多种可穿戴设备的并行分析与预测
波束控制:5G 的众多技术之一
全球第二!三星电子2020年所获专利数量超6415项
日本成功培养人类角膜内皮细胞,有望成为角膜移植替代疗法
LED驱动最容易坏的元件 led灯驱动器有几种 led灯闪烁故障解决方法
多敏固态控制器元件选用与电路调试
三维扫描仪对汽车车灯的对比检测蓝光3D扫描仪检测汽车灯具精密塑件件
利用嵌入式ARM+FPGA实现工业CT运动控制系统设计
“智能电源”已无处不在 从智能电源IC实现智能工业