__restrict

와 같은 restrict__declspec 한정자는 __restrict 키워드를 나타내는 기호가 현재 범위에 대 한 별칭이 지정 수 없습니다. __restrict 키워드와 다른에서 restrict __declspec 한정자를 사용할 수 있습니다.

  • __restrict 키워드에만 변수를 사용할 수 및 __declspec(restrict) 함수 선언 및 정의에 유효 합니다.

  • 때 __restrict 입니다, 컴파일러 변수 없음 alias 속성 전파 되지 않습니다.즉, 사용자에 게 할당 하는 경우는 __restrict 변수 비-__restrict 변수, 컴파일러는 의미 되지 않습니다가 아닌-__restrict 변수 별칭이 지정 되지 않았습니다.이 동작에서 다릅니다는 restrict C99 사양의 키워드입니다.

전체 함수의 동작에 영향을, 일반적으로 사용 하는 더 나은 경우는 __declspec 보다는 키워드.

__restrict유사한 restrict C99 사양에서 있지만 __restrict C++ 또는 C 프로그램에서 사용할 수 있습니다.

지원 하지 않습니다 __restrict 에서 C++ 참조 합니다. 

[!참고]

또한이 변수를 사용 하는 경우는 volatile (C++) 키워드를 volatile 보다 우선 합니다.

예제

// __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;
};

참고 항목

참조

C + + 키워드