问个C++编译器优化代码的问题
例如这样一个程序
struct A { int x, y, z; };
struct B { float x, y, z; };
A aaa;
B bbb;
int main() {
aaa.x = 1;
return 0;
}
虽然声明了两个struct和对应的变量,但是main中只引用了其中的一个。
问题:
那么经过编译优化以后,struct B和变量bbb的代码还会出现在最终的EXE中吗?
如果还include了非常大规模的库,编译器能排除那些从未被main直接或间接引用的代码吗?