dポイントプレゼントキャンペーン実施中!

volatile はどういうときに使用するのでしょうか?
これはマルチスレッドで、他のスレッドからも使用される変数につけるものでしょうか
具体的な使い方がはっきりとわかっていませんが、そういう変数全部につければよいものでしょうか
そしてC言語とC++言語で違いはありますか?

A 回答 (1件)

まず C++ の方は「基本的に C と同じ」と書いてあるので C と同じと思っていい.



で C における volatile は「処理系 (コンパイラ) の知らないうちに値が変化するかもしれない」または「処理系にはわからない副作用があるかもしれない」ということを指示します. 例えばスレッド間で変数を共有するときには「あるスレッドで値を変更すると他のスレッドでも変化する」ので volatile を付ける必要がありますし, あるいは関数 signal によって登録されたシグナルハンドラでから変数をアクセスするときも volatile がないと想定した値にならないことがありえます.
    • good
    • 0
この回答へのお礼

回答ありがとうございます
signalは気づきませんでした
思ったより考慮しないとダメなところが多そうですね

漠然としているので具体的なコードを実装しながら見てみようと思います

お礼日時:2016/10/11 21:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!