减号 (-) 运算符对 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.
描述了对无符号类型应用一元减号运算符的行为
我遇到了这行代码:
memset(tmp, 0, (-len) & 0x7F);
其中 len
是一个 uint8_t
指针 变量。
-在位运算前对len
做了什么?结果会怎样?
鉴于它是一个无符号整数,我认为以这种方式添加一个符号是没有意义的(如果它在 C 中完全可能的话),更不用说它是一个指针了。
len
不能是指向变量的 指针 ,因为一元减号运算符不能接受指针作为操作数。代码无法编译。
考虑到function prototype of memset,这里len
更有可能是uint8_t
类型。
here.