私は次の構造を持っています:
typedef struct{
int data[LENGTH];
}Data;
次のように使用します。
Data* dt=CALLOC(...)
int foo(Data* restrict d){
for(...)
d[i]->data[j];
//do stuff with data[]
}
私の質問は次のとおりです。厳密なエイリアシングを削除するとd
、そのメンバーにも影響しrestrict
ますか、それとも個別に使用する必要がありますか? 言い換えれば、構造体に含まれるすべてのポインターが同じ扱いを受けるrestrict
ことを意味しますか?
編集:エイリアシングのレベルによって、つまり、構造体へのポインターがrestrict
ed になると、それに含まれる他のポインターも制限されます (私の例の場合のように)。