2

私は次の構造を持っています:

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ことを意味しますか?

編集:エイリアシングのレベルによって、つまり、構造体へのポインターがrestricted になると、それに含まれる他のポインターも制限されます (私の例の場合のように)。

4

1 に答える 1