- ベストアンサー
副作用、副作用完了点とは
C言語には"副作用 副作用完了点"という言葉がありますが、どのような事を指すのでしょうか。++a a++などのインクリメント演算子ではどの時点が副作用完了点なのでしょうか。宜しく願います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
JIS X3010でいう副作用と副作用完了点は、原文(ISO/IEC9899)では、 side effectとsequence pointと呼ばれます。 # 個人的には原文の方が内容を示しているように思ってます。 言語仕様として、side effectsが決定することを保証するタイミングがsequence pointです。 ここでは、++aによりaの値がインクリメントするのがside effectで、 その結果が確定するのが、sequence pointです。 sequence pointの条件はいろいろありますので、本当に興味があれば言語仕様を読んでみてください。 とりあえず、++aやa++だけでは、sequence pointはありません。 ++a;なら、;の時点がsequence pointです。 参考URLが、JIS X3010:1999です。(※閲覧しかできません) (原文の方は購入していただかないと参照できないので日本版です) 例えば6.5章に式についての記載があります。
その他の回答 (1)
- Oh-Orange
- ベストアンサー率63% (854/1345)
回答No.1
★アドバイス ・次のリンクの下のほうをどうぞ。 http://www.st.rim.or.jp/~phinloda/cqa/cqa7.html→『初級C言語Q&A(7)』 場所は『Q 【&&や||と副作用完了点】』です。
お礼
おぼろげながらわかったような気がしました。有難うございました。