gpt4 book ai didi

C89 与 c99 GCC 编译器

转载 作者:太空狗 更新时间:2023-10-29 16:50:40 25 4
gpt4 key购买 nike

如果我使用 c89 和 c99 编译以下程序有区别吗?我得到相同的输出。两者之间真的有区别吗?

#include <stdio.h>

int main ()
{
// Print string to screen.
printf ("Hello World\n");
}

gcc -o helloworld -std=c99 helloworld.c
vs
gcc -o helloworld -std=c89 helloworld.c

最佳答案

  • // 注释不是 C89 的一部分,但在 C99 中是可以的,
  • main() 退出而不返回任何值等同于 return 0; 在 C99 中,但在 C89 中不是这样。来自 N1256 (pdf), 5.1.2.2.3p1:

    If the return type of the main function is a type compatible with int, a return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument; reaching the } that terminates the main function returns a value of 0.

因此您的代码在 C89 中具有未定义的行为,而在 C99 中具有明确定义的行为。

关于C89 与 c99 GCC 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com