C 中正确的 Hello World 程序是什么?
由于“c hello world”的谷歌结果第一页差异很大,而且很多是旧的C,我想把标准版本放在一个地方,方便复制和粘贴。
看你有多懒::)
#error Hello World
我相信这是 C 语言中的标准 Hello World 程序:
#include <stdio.h>
int main(void)
{
printf("Hello World\n");
return 0;
}
在 C99 或 C2011 中,您可以使用以下五行代码:
#include <stdio.h>
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 main 函数。
#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,他们真的值得我给予更多的信任。
“官方”版本是 Kernighan 和 Ritchie 所著的“The C Programming Language”第一版中的版本。
也就是说:
#include <stdio.h>
main()
{
printf("hello, world\n");
}
#include <stdio.h>
int main()
{
printf("Hello World\n");
getchar();
return 0;
}
“正确”是什么意思?
我想这个是最正确的,因为它不会遗漏任何东西:
#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”。
$ cat hello.c
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
}
$ c99 hello.c
$ ./a.out
Hello world!
$
然后是:
#include <stdlib.h>
int main()
{
system("echo Hello World!");
return 0;
}