减号 (-) 运算符对 C 中的指针变量有什么作用?

What function does the minus sign (-) operator have on a pointer variable in C?

我遇到了这行代码:

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

其中 len 是一个 uint8_t 指针 变量。

-在位运算前对len做了什么?结果会怎样?

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

len 不能是指向变量的 指针 ,因为一元减号运算符不能接受指针作为操作数。代码无法编译。 考虑到function prototype of memset,这里len更有可能是uint8_t类型。 here.

描述了对无符号类型应用一元减号运算符的行为