Какова правильная программа Hello World в C?
Поскольку первая страница Результаты Google для "c hello world" сильно различаются, и многие из них старые, мне нужна стандартная версия в одно место для простой копирования и вставки.
Какова правильная программа Hello World в C?
Поскольку первая страница Результаты Google для "c hello world" сильно различаются, и многие из них старые, мне нужна стандартная версия в одно место для простой копирования и вставки.
Я считаю, что это стандартная программа Hello World в C:
#include <stdio.h>
int main(void)
{
printf("Hello World\n");
return 0;
}
Зависит от того, как вы ленивы::)
#error Hello World
В 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 создает знакомое приветливое приветствие. Да, это еще одна реализация классической программы, которая печатает "Привет, мир!". когда вы запустите его.
Однако, в отличие от минимальной версии, часто просматриваемой, GNU Hello обрабатывает свой список аргументов, чтобы изменить его поведение, поддерживает приветствия на многих языках и т.д. Основная цель GNU Hello - продемонстрировать, как писать другие программы, которые делают эти вещи; он служит моделью для стандартов кодирования GNU и практик поддержки GNU.
GNU Hello написан на C. Для реализаций на других языках программирования, в частности, включая перевод на другие языки, см. дистрибутив GNU Gettext.
Существует более одного, и хотя ответ 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, которые действительно заслуживают большего доверия, чем я могу дать.
#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!
$
"Официальным" будет один в первом издании "Язык программирования C" Кернигана и Ричи.
#include <stdio.h>
main()
{
printf("hello, world\n");
}
Тогда есть:
#include <stdlib.h>
int main()
{
system("echo Hello World!");
return 0;
}