私はpthread_createのマニュアルページを見ています。pthread_createの意味は何ですか
int pthread_create(pthread_t *restrict thread,
const pthread_attr_t *restrict attr,
void *(*start_routine)(void*), void *restrict arg);
この機能シグネチャの意味はなんですか?それの目的は何ですか?
私はpthread_createのマニュアルページを見ています。pthread_createの意味は何ですか
int pthread_create(pthread_t *restrict thread,
const pthread_attr_t *restrict attr,
void *(*start_routine)(void*), void *restrict arg);
この機能シグネチャの意味はなんですか?それの目的は何ですか?
restrict
は、この関数へのポインタ引数がエイリアスできないという要件を呼び出し元に設定します。つまり、ポインターは同じオブジェクトを指してはいけません。
pthread_create
の場合は明らかですが、memcpy
のような機能にとっては重要です。
void * memcpy(void *restrict s1, const void *restrict s2, size_t n);
memcpy
では、入力バッファが重複していないことが必要です。これは通常、単純な順方向または逆方向の反復ループとして実装されます。したがって、バッファを実行すると、が重複すると、すでにコピーされたデータのコピーが終了する可能性があります。
Thisかなり多くのご質問にお答えします。
これは、基本的には、このポインタ、またはそれから派生したポインタ(pointer + 1)がポインタが指しているものにアクセスすることをコンパイラに伝えます。
[this](http://en.wikipedia.org/wiki/Restrict)にチェックを入れましたか? –