나는 C99 사양 (p.11506)를 말한다 (N1256.pdf)를 찾고 있었어요 : 어떤 개체의C99 : "int const * ptr"은 무엇을 의미합니까?
const int *ptr_to_constant;
int *const constant_ptr;
"내용은 ptr_to_constant 그 포인터를 통해 수정 될 수 없다 가리키는하지만, 자신을 ptr_to_constant 비슷하게, constant_ptr에 의해 지시 된 int의 내용은 변경 될 수 있지만, constant_ptr 그 자체는 항상 같은 위치를 가리켜 야한다. " (6.7.5.1 포인터 선언자)
앞에서 읽은 다음 두 문장은 동일한 동작을 발생시킵니다.
int *const constant_ptr; /* This form is mentioned in the standard */
int const *constant_ptr; /* This form is NOT mentioned in the standard */
두 번째 양식이 올바른지 또는 확장인지 궁금합니다. 사전에
감사합니다, -S
감사 인사. 이 행동에 대한 언급을 제안 해 주시겠습니까? – user926918
@ user926918 [이 질문] (http://stackoverflow.com/questions/5503352/const-before-or-const-after)가 귀하를 심문 할 수 있습니다. – nouney
구문 분석의 가능한 이유에 대한 흥미로운 토론이 있었지만 문제는 해결되지 않았습니다. 나는 C99 표준에서 다시 예선 규칙을 재확인했으나, 내가 알고있는 한,이 문제에 관해 침묵했다. 즉, 마지막 문장이 잘못되었거나 지정되지 않았거나 정의되지 않았 음을 말하지는 않습니다. 그래서 그것은 관행이 표준의 연장 인 것처럼 보이는 것이 나에게 의심 스럽습니다. – user926918