揮発性ラベルを持つことは可能ですか? このようなもの:
volatile coroutine:
また
coroutine volatile:
または多分
coroutine: volatile
最適化に影響されないラベルが欲しい。それは可能ですか?GCC 拡張は許容されます。
修飾子の意味は、volatile
C 2011 (N1570) 5.1.2.3 6 で指定されています。「揮発性オブジェクトへのアクセスは、抽象マシンの規則に従って厳密に評価されます。これは、プログラムの観察可能な動作です。」</p>
ラベルはオブジェクトではなく、アクセスされるラベルでもないため、この仕様はラベルには適用できません。
volatile
理論的には、ラベルに適用できるように言語を拡張できます。これを行うには、その意味を指定する必要があります。それらが「コンパイラの最適化によって改ざんされない」ことを意味するということは、不明確であり、未定義の用語を使用し (「改ざんされた」)、適用できない用語を使用しているため、不十分です (C 標準は、コンパイラではなく C の実装に適用されます。コンパイラ」は、標準の規範的な部分にも表示されません。)