C でコードを記述する場合const
、関数の定義に関数パラメーターの宣言を含めることがよくありますが、その宣言は含めません。
int func(int arg);
...
int func(int const arg)
{
return arg + 1;
}
これは常に GCC と Clang を使用して問題なくコンパイルされていますが、Microchip の C18 コンパイラは型の不一致を主張しています。
規格はこれについて何を言わなければなりませんか? 非標準の拡張機能に依存していませんか?
編集:私はこれの利点について尋ねているわけではなく、想定される重複した質問のように C++ について尋ねているわけでもありません (関数パラメーターに「const」を使用する)。C 標準についてお尋ねします。これは合法的な ANSI C、C99、または C11 ですか?