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; }