用 C 编写代码时,我经常const
在函数定义中包含函数参数声明,但不包含它的声明:
int func(int arg);
...
int func(int const arg)
{
return arg + 1;
}
这总是使用 GCC 和 Clang 为我编译而没有问题,但 Microchip 的 C18 编译器声称类型不匹配。
标准对此有何规定?我是否一直依赖非标准扩展?
编辑:我不是在问这样做的好处,也不是像在假定的重复问题(Use of 'const' for function parameters)中那样询问 C++。我问的是 C 标准:这是合法的 ANSI C、C99 还是 C11?