일정한 데이터가있는 경우 (예 : 형태const에 대한 포인터가 __restrict와 같은 효과를 줍니까?
double const * const
또는double const *
이 컴파일러에게 __restrict
와 동일한 정보를 제공 않는다/그것이 동일한 효과가 있습니까?
내가 이해하는 한, __restrict
은 기본적으로 약속 된 데이터가 다른 포인터를 통해/변경되지 않는다고 약속합니다. 그래서, const 값에 대한 포인터는 같은 약속을하게합니다. 그렇죠?
__restrict
은 Visual Studio의 키워드를 나타냅니다. 나는 GCC에서 그 의미가 비슷하다고 생각한다.
2 개의 밑줄로 시작하는 '__restrict'는 전체적으로 아키텍처 종속적 인 기능이므로 신중히 사용해야합니다. 일부 컴파일러/언어/구현 기능의 구현에 사용되었음을 나타내는 접두어가 있으므로 프로그래머는 사용하지 말고 클라이언트 소프트웨어에서 사용해서는 안됩니다. 반면에'const'는 컴파일러가 상수의 값을 변경하려고 시도하고 값 오용을 사용자에게 경고하도록 허용하는 표준 언어 기능입니다. –