C中正确的Hello World程序是什么?
由于Google results for "c hello world"的第一页变化很大且很多都是旧C,我希望在一个地方使用标准版本以便于复制和粘贴。
答案 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”中的一个。
#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;
}