是否调用以下程序 Undefined Behaviour 在C?

int main()
{
    printf("Printf asking: Where is my declaration ?");
}

在上面的程序中,有一个隐含的声明 printf(), ,因此上述代码是否完全符合标准标准,或者只是具有某些特定实现的行为?

有帮助吗?

解决方案

是的,它确实。在范围内没有声明是UB。

J.2不确定的行为

- 在函数范围中无函数原型的函数,该函数用函数原型定义了函数,因此原型以椭圆形结尾,或促销后的参数类型与参数类型不兼容(6.5.2.2.2 )。

另外,请注意,在C99中可以脱落Main(即语义上等同于A return 0;)。对于Pre-C99兼容编译器,您需要一个返回语句 主函数的返回类型是与 int.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top