strict aliasing rules
異なるポインタが同じアドレスを指さない条件を定めて
最適化
しやすくしてる
従わないと
未定義動作
を引き起こす
C++
https://timsong-cpp.github.io/cppwp/basic.lval#11
C言語
6.5.1 7 Expressions General
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf#subsection.6.5.1