const volatile
次のような修飾変数
の実用的な使用法を見ることができます
const volatile uint64_t seconds_since_1970;
基盤となるハードウェアメカニズムが毎秒値を更新するが、変数が(おそらく埋め込まれた)ハードウェアで書き込み可能でない場合。また、3つすべて(C11では4つ)の型修飾子は独立していると見なされるため、すべての組み合わせが許可されているようです。しかし、私は、restrict volatile
修飾されたポインターが本当に意味をなす実際の状況を想像するのに途方に暮れています。
uint32_t * restrict volatile pointer_to_some_uint32;
[編集:明確にするために:両方とも、ポイントされたオブジェクトではなく、ポインターvolatile
にrestrict
適用されます!]
これは言語で許可されているがそれ自体では役に立たない構造ですか、それともこれが役立つ可能性のあるアプリケーション領域が不足していますか?