在C中正确的Hello World

时间:2012-09-10 16:26:34

标签: c

C中正确的Hello World程序是什么?

由于Google results for "c hello world"的第一页变化很大且很多都是旧C,我希望在一个地方使用标准版本以便于复制和粘贴。

10 个答案:

答案 0 :(得分:75)

取决于你有多懒:::)

#error Hello World

答案 1 :(得分:45)

我相信这是C语言中的标准Hello World程序:

#include <stdio.h>

int main(void)
{
  printf("Hello World\n");
  return 0;
}

答案 2 :(得分:15)

在C99或C2011中,您可以使用以下五行代码:

#include <stdio.h>
int main(void)
{
    puts("Hello World!");
}

由于C99(但不是C89)允许您在结尾省略return 0;,它会向调用环境返回确定性状态0(成功)。它没有任何未使用的函数参数。它从标题中有puts()的原型。输出包括适当的行结尾。我认为这是犹太教,而且基本上是最小的。

答案 3 :(得分:9)

官方GNU Hello World可在此处找到:http://www.gnu.org/software/hello/

  

GNU Hello程序产生熟悉,友好的问候语。是的,这是经典程序的另一个实现,当你运行它时会打印出“Hello,world!”。

     

但是,与常见的最小版本不同,GNU Hello处理其参数列表以修改其行为,支持多种语言的问候语,等等。 GNU Hello的主要目的是演示如何编写执行这些操作的其他程序;它可以作为GNU编码标准和GNU维护者实践的模型。

     

GNU Hello是用C编写的。对于其他编程语言的实现,特别是包括翻译成其他语言,请参阅GNU Gettext发行版。

答案 4 :(得分:8)

不止一个,虽然Tor的答案很好,但我更喜欢使用argc / argv主函数。

#include <stdio.h>

int main(int argc, char** argv)
{
  printf("Hello World\n");
  return 0;
}

在极少数奇怪的事件中,printf正在检查失败,您可能会遇到

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

extern int errno;
extern FILE *stdout;

int main(int argc, char** argv)
{
  errno = 0;

  int err = printf("Hello World\n");

  if (err < 0) {
    return EXIT_FAILURE;
  }

  err = fflush(stdout);

  if (err < 0 || errno != 0) {
    return EXIT_FAILURE;
  } else {
    return EXIT_SUCCESS;
  }
}

与任何C程序一样,为了减少错误,它已被修改了太多次。特别感谢R ..,dmp和Scooter,他们真的应该得到比我能给予的更多的信任。

答案 5 :(得分:5)

“官方”将是Kernighan和Ritchie在第一版“The C Programming Language”中的一个。

To wit

#include <stdio.h>
main()
{
    printf("hello, world\n");
}

答案 6 :(得分:4)

#include <stdio.h>

int main()
{
  printf("Hello World\n");
  getchar();
  return 0;
}

答案 7 :(得分:3)

“正确”是什么意思? ;)

我认为这个是最正确的,因为它不会遗漏任何东西:

#include <stdio.h>

#ifndef HELLO_STRING
#define HELLO_STRING "Hello, world!"
#endif

int main(int argc, char *argv[], char *envp[])
{
    puts(HELLO_STRING);
    return 0;
}

但是,如果您想要本地化,则此程序未本地化,则使用libintl;)

答案 8 :(得分:2)

$ cat hello.c
#include <stdio.h>

int main(void)
{
    printf("Hello world!\n");
}

$ c99 hello.c
$ ./a.out
Hello world!
$

答案 9 :(得分:1)

然后是:

#include <stdlib.h>

int main()
{
  system("echo Hello World!");
  return 0;
}