Aracılığıyla paylaş


__restrict

Gibi restrict__declspec değiştiricisi, __restrict anahtar belirtir bir sembolü başka ad verilmiş geçerli kapsam içinde değildir. __restrict Anahtar sözcüğünü farklı restrict __declspec aşağıdaki şekillerde değiştirici:

  • __restrict Anahtar sözcüğü yalnızca değişkenler üzerinde geçerli ve __declspec(restrict) yalnızca işlev bildirimleri ve tanımları geçerlidir.

  • Zaman __restrict olan kullanıldığında, bir değişkenin no-diğeradı özelliği derleyici yayılmaz.Diğer bir deyişle atarsanız, bir __restrict değişken için bir olmayan-__restrict değişken, derleyici, gelmez değil olmayan-__restrict değişken başka ad verilmiş değil.Bu davranışı, farklı restrict C99 belirtiminden anahtar sözcüğü.

Tüm bir işlevin davranışını etkiler, genellikle, kullanmak iyidir __declspec anahtar sözcük'den.

__restrictbenzer şekilde, restrict C99 spec alınan ancak __restrict c ya da C++ programlarında kullanılabilir.

İçin destek yoktur __restrict C++ başvurular üzerinde. 

[!NOT]

Ayrıca sahip bir değişkeni kullanıldığında geçici (C++) anahtar sözcüğü, volatile göre öncelikli olacaktır.

Örnek

// __restrict_keyword.c
// compile with: /LD
// In the following function, declare a and b as disjoint arrays
// but do not have same assurance for c and d.
void sum2(int n, int * __restrict a, int * __restrict b, 
          int * c, int * d) {
   int i;
   for (i = 0; i < n; i++) {
      a[i] = b[i] + c[i];
      c[i] = b[i] + d[i];
    }
}

// By marking union members as __restrict, tell compiler that
// only z.x or z.y will be accessed in any given scope.
union z {
   int * __restrict x;
   double * __restrict y;
};

Ayrıca bkz.

Başvuru

C++ anahtar sözcükler