volatileを付けるとlongjmpでも、最適化抑止されて、値が戻ることは無くなる。
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