Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
変数を揮発性としてマークすると、コード内のアクセスごとに読み取りが保証されます。
しかし、不揮発性変数はどうですか?
関数/ブロックごとに少なくとも1つの読み取りが保証されていますか、それとも関数の境界を越えて値を最適化できますか?
インライン化(挑発されていない、つまり、no inline)がとにかくそれらを根絶できるのであれば、なぜ関数境界が重要なのでしょうか?
inline
IOW:はい、as-ifルールの下ではほとんどすべてが可能です。プログラムがコンパイラーが何も最適化していないかのように動作する限り、プログラムは何でも実行できます。(そして、その基準の境界もかなり曖昧です。たとえば、コピーを削除することはコンパイラーの心のコンテンツに許可されており、欠落している副作用は気になりません。)