考虑这个 C 程序:
int main()
{
puts("Hello world!");
return 0;
}
这编译并运行良好,据我所知,是合法的 C89。但是,我对此不是 100% 确定的。使用 clang 在 C99 模式下编译会通知我implicit declaration of function 'puts' is invalid in C99
(这让我认为 C 标准必须在 C99 中更改以使隐式函数声明非法,这是我要确认的)。
C89 中的隐式函数声明合法吗?(即使这样做是个坏主意(除非您遇到混淆的 C 代码挑战))