restrict
修飾子を参照して、C11 標準の次の 2 つのセクションに出くわしました。
1#
6.7.3-8
制限修飾ポインターを介してアクセスされるオブジェクトには、そのポインターとの特別な関連付けがあります。以下の 6.7.3.1 で定義されているこの関連付けでは、そのオブジェクトへのすべてのアクセスで、直接的または間接的に、その特定のポインターの値を使用する必要があります。また、適合プログラムを構成するすべての前処理翻訳単位から修飾子のすべてのインスタンスを削除しても、その意味 (つまり、観察可能な動作) は変わりません。
筆記体の断片の意味を説明してもらえますか? 私の解釈では、意味が変わらないので、の使用restrict
は無意味に見えます...
2#
6.7.3.1-6
翻訳者は、restrict の使用によるエイリアシングの影響の一部またはすべてを自由に無視できます。
これらのエイリアシングの意味は何でしょうか? いくつかの例を見せてもらえますか?