volatile
volatileとは:
コンパイラの最適化を抑止するための修飾子
volatileを付けると、その付けたものが、コンパイラの最適化対象外となる。
組み込み系の場合:IOポートなど外部デバイスと通信する場合、メモリアドレスを介して入出力を行うときにvolatileが必要となる。
付ける意味
デバイスレジスタを参照する変数を宣言するときに適用する必要がある。
使用しないと、コンパイル時のオプティマイザが偶然、重要なアクセスを削除することがある。
C言語の最適化とは:
http://proger.blog10.fc2.com/blog-entry-20.html
使い方:
volatile
参考:https://www.ryosan.co.jp/technology/development/freshers/development_376/
参考:
http://www.kumikomi.net/archives/2003/05/10kumi.php?page=13
https://world-trigger.net/2018/03/14/【プログラミング】図解%E3%80%80volatile宣言とは%E3%80%80c言語/
http://www.zephyr-cradle.info/diary/20090528p01.html
https://teratail.com/questions/39986
https://yohhoy.hatenadiary.jp/entry/20121016/p1
http://proger.blog10.fc2.com/blog-entry-20.html