这个问题可能只是对操作符理解错误的另一种情况。但是不久前,我看到有人在推特上发帖说,在C语言中可以使用一个运算符来检查整数溢出。也就是
&+
(和加号)运算符,可以像这样简单地使用:#include <stdio.h>
#include <stdint.h>
int main()
{
uint32_t x, y;
x = 0xFFFFFFFF;
y = 1;
if (x &+ y) {
printf("Integer overflow!\n");
} else {
printf("No overflow\n");
}
return 0;
}
我发现这段代码的工作方式符合预期,使用以下参数编译时,GCC 6没有抛出任何警告或错误:gcc -Wall -Wextra -Werror of.c
但是奇怪的是,我还没有找到关于这个运算符的任何文档,并且我从未在任何地方看到过它的使用。请问有人可以解释一下这是如何工作的吗?
&+
。 - Antti Haapala -- Слава Україні