(C에서)되지 선언이 항상 컴파일하고있다CONST 기능 프로토 타입의 매개 변수 만 C 코드를 쓸 때, 나는 종종 함수의 정의에서 함수 매개 변수 선언에서 <code>const</code> 있지만 선언을 포함
int func(int arg);
...
int func(int const arg)
{
return arg + 1;
}
을 나를 위해 GCC와 Clang을 사용하여 문제없이,하지만 마이크로 칩의 C18 컴파일러는 타입 불일치를 주장하고있다.
표준이 이에 대해 무엇을 말해야합니까? 비표준 확장 프로그램에 의존하고 있습니까?
편집 : 나는 이것의 이점에 대해 묻지 않고 C-++에 대해서 묻지 않을 것이다. 중복 된 질문 (Use of 'const' for function parameters)과 같다. 나는 C 표준에 대해 묻고있다 : 이것은 합법적 인 ANSI C, C99 또는 C11인가?
표준이 맞는다고 생각합니다. 호환되는 유형과 관련이 있으며 실제로 올바른 참조를 찾을 수 있습니다. –
사실,이 질문은 중복되지 않습니다. 나는 당신이 그것을 더주의 깊게 다시 읽고 다시 여길 것을 제안합니다. – glauxosdever
주세요. C++에 대해 묻지 않고이 스타일의 찬반 양론에 대해 묻지 않습니다. 나는 C 표준에 대해 묻고있다. – thetic