首页 > 解决方案 > 减号 (-) 运算符对 C 中的指针变量有什么功能?

问题描述

我遇到了这行代码:

    memset(tmp, 0, (-len) & 0x7F);

指针变量len在哪里。uint8_t

按位运算之前的“ - ”是什么?len结果会是什么?

鉴于它是一个无符号整数,我认为以这种方式添加一个符号是没有意义的(如果它在 C 中完全可能的话),更不用说它是一个指针。

标签: coperators

解决方案


len不能是指向变量的指针,因为一元减号运算符不能接受指针作为操作数。代码无法编译。考虑到memset 的函数原型,更可能len是这里的类型uint8_t此处描述了对无符号类型应用一元减号运算符的行为。


推荐阅读