我正在尝试在 gcc 上编译以下内容-pedantic-errors -pedantic -Wall -O2
#include <iostream>
void reset_uint32(uint32_t* pi)
{
char* c = (char*)(pi);
uint16_t* j = (uint16_t*)(c); // warning?
j[0] = 0;
j[1] = 0;
}
void foo()
{
uint32_t i = 1234;
reset_uint32(&i);
}
int main() {
foo();
}
但我没有看到任何严格的别名警告。我也尝试过启用
-fstrict-aliasing
-Wstrict-aliasing
但仍然没有警告。这是一个错误吗?