0

注: Xcode の最新バージョンに同梱されている目的の C コンパイラを使用しています。

これが合法である理由は次のとおりです。

void verySpecial(const float* __restrict foo, const int size) {
    for (int i = 0; i < size; ++i) {

        // ... do special things ...

        ++foo;  // <-- Should be illegal to modify const pointer?
    }
}

ただし、typedef を使用すると、私がすべきだと思うことを実行します。

typedef float* __restrict RFloatPtr;

void verySpecial(const RFloatPtr foo, const int size) {
    for (int i = 0; i < size; ++i) {

        // ... do special things ...

        ++foo;  // <-- Now this is a compiler error.
    }
}

では、typedef の場合と何が違うのか、何がわからないのでしょうか? __restrict について読むと頭が痛くなり、ここでそれが重要なのかどうかさえわかりません。

4

1 に答える 1