我正在尝试使用-fsanitize=bounds选项查找代码中的越界问题,但我遇到了奇怪的行为:#include <cstdlib>
int如果我尝试访问索引大于1的元素,则会报告错误:/usr/include/c++/5/array:53:36: runtime error: index 2 out of bounds for type这是预期的
我猜你们中大多数使用过C/C++的人对预处理器是如何工作的(或多或少)有一个直观的了解。我一直这样认为,直到今天,我的直觉被证明是错误的。故事是这样的:A好吧,好吧,也许不是任何人所期望的,但这是可以解释的。我猜预处理器不知何故发现了一些问题,所以什么也没做。我尝试的下一件事是:#define B A C
#d