为什么C编译器不会优化对struct数据成员的读写,而不是不同的局部变量?
我正在尝试使用在编译时已知的固定max_size创建一些POD值的本地数组,然后读取运行时大小值并处理该数组中的第一个size元素.问题是,当arr和size放在同一个struct/class中时,为什么编译器不会消除堆栈的读写操作,而arr和size是独立的局部变量的情况呢?)但是,如果我们试图通过该调用这样做,那不是未定义的行为吗?这是现代编译器实现中的一个小缺点?或者,当我们将数组及其大小放入同一个类时,C标准确实需要这样的行为导致生成效率较低的代码吗?