565_C语言中关于减号操作符使用的一点小细节以及曾经的误解

         全部学习汇总: https://github.com/GreyZhang/c_basic

         看到了一段代码:

         上面这段代码来自于linux早期的内核代码,而让我突然间觉得不适应的是71行,在一个宏定义前面直接增加了一个符号。这样,合理吗?当然是合理的,只是我自己没有这么用过而已。

         其实,我们可以缩减一下代码,做一个简单的demo。

         也就是这个样子了,做一个编译测试:

         其实,看到结果之后再复盘思考也是可以理解的。因为,这段代码肯定是被预处理器处理成了-123的输出而已。如果打印一个整形数据,当然是很容易理解的,这个也就是这段代码为什么可行的原因。只是,我自己在平时的编码中是没有遇到的。

         那么,这个操作符是否可以对变量起作用呢?直接做一个测试代码:

         测试一下:

         也是没问题的。那么,如果是const,又将会是什么情况?

         还是可以。那么,为什么呢?我们查看一下标准类的说明。

         其实,只看这一段基本上就清楚了。除了这个二元操作之外,这个操作符还有一个一元操作。

  而一元操作的效果,对于减号来说其实就是取反。

         都说C语言简单,看起来我掌握的还是不扎实啊!我好奇,周边的同事小伙伴们,是否有人这部分非常熟悉呢?

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页