c/c++语言开发共享C中的隐含声明

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

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

在上面的程序中有一个printf()的隐式声明,上面的代码是完全符合标准的,还是只有一些特定于实现的行为?

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

    J.2未定义的行为

    – 对于在函数原型定义函数的范围内调用没有函数原型的函数,原型以省略号结尾或者促销后的参数类型与参数类型不兼容(6.5.2.2) )。

    另外,请注意在C99中掉落main是正常的(即在语义上等同于return 0; )。 对于符合C99前的编译器,您需要一个return语句,其中main函数的返回类型是与int兼容的类型

      以上就是c/c++开发分享C中的隐含声明相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560218.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐