给定以下 C 源代码:
const int foo(void)
{
return 42;
}
gcc
编译没有错误,但使用-Wextra
or-Wignored-qualifiers
时,会出现以下警告:
warning: type qualifiers ignored on function return type
我知道在 C++ 中有充分的理由区分const
函数和非const
函数,例如在运算符重载的上下文中。
然而,在纯 C 语言中,我看不出为什么gcc
不发出错误,或者更简洁地说,为什么标准允许const
函数。
为什么允许在函数返回类型上使用类型限定符?