volatile

volatileを付けるとlongjmpでも、最適化抑止されて、値が戻ることは無くなる。

[法大奥山研究室]C言語:17.2. volatile

xはこれまでの普通のint型に対し、yはvolatileのint型。

$ vi volatile.c 
$ gcc -O volatile.c -o volatile
$ ./volatile 
x = 20
y = 200
x = 10
y = 200
$

前回のように、最適化オプションを付けても、xはlongjmpで値が戻るのに対し、yは変わらない。

Sample/c/volatile/volatile/src/volatile at master · bg1bgst333/Sample · GitHub