C中的正确Hello World

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

由于“c hello world”的谷歌搜索结果的第一页变化很大,而且许多都是旧版C,我希望将标准版本放在一个地方,以便于复制和粘贴。

取决于你是多么懒惰::)

 #error Hello World 

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

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

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

 #include  int main(void) { puts("Hello World!"); } 

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

官方GNU Hello World可以在这里找到: http : //www.gnu.org/software/hello/

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

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

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

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

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

在一个罕见的,奇怪的事件中,printf正在检查失败,你可能会遇到

 #include  #include  #include  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,他们真的应该得到比我能给予的更多信誉。

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

即 :

 #include  main() { printf("hello, world\n"); } 
 #include  int main() { printf("Hello World\n"); getchar(); return 0; } 

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

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

 #include  #ifndef HELLO_STRING #define HELLO_STRING "Hello, world!" #endif int main(int argc, char *argv[], char *envp[]) { puts(HELLO_STRING); return 0; } 

但是,这个程序没有本地化,如果你想要本地化,那么使用libintl;)

 $ cat hello.c #include  int main(void) { printf("Hello world!\n"); } $ c99 hello.c $ ./a.out Hello world! $ 

然后是:

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