Подтвердить что ты не робот

Правильный Hello World в C

Какова правильная программа Hello World в C?

Поскольку первая страница Результаты Google для "c hello world" сильно различаются, и многие из них старые, мне нужна стандартная версия в одно место для простой копирования и вставки.

4b9b3361

Ответ 1

Я считаю, что это стандартная программа Hello World в C:

#include <stdio.h>

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

Ответ 2

Зависит от того, как вы ленивы::)

#error Hello World

Ответ 3

В C99 или C2011 вы можете использовать эти пять строк кода:

#include <stdio.h>
int main(void)
{
    puts("Hello World!");
}

Так как C99 (но не C89) позволяет вам опустить return 0; в конце, он возвращает детерминированный статус 0 (успех) вызывающей среде. У нее нет неиспользуемых аргументов функции. Он имеет прототип для puts() из заголовка. Выход включает в себя соответствующее завершение строки. Я думаю, что он кошерный и по существу минимальный.

Ответ 4

Официальный GNU Hello World можно найти здесь: http://www.gnu.org/software/hello/

Программа GNU Hello создает знакомое приветливое приветствие. Да, это еще одна реализация классической программы, которая печатает "Привет, мир!". когда вы запустите его.

Однако, в отличие от минимальной версии, часто просматриваемой, GNU Hello обрабатывает свой список аргументов, чтобы изменить его поведение, поддерживает приветствия на многих языках и т.д. Основная цель GNU Hello - продемонстрировать, как писать другие программы, которые делают эти вещи; он служит моделью для стандартов кодирования GNU и практик поддержки GNU.

GNU Hello написан на C. Для реализаций на других языках программирования, в частности, включая перевод на другие языки, см. дистрибутив GNU Gettext.

Ответ 5

Существует более одного, и хотя ответ 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, которые действительно заслуживают большего доверия, чем я могу дать.

Ответ 6

#include <stdio.h>

int main()
{
  printf("Hello World\n");
  getchar();
  return 0;
}

Ответ 7

Что вы подразумеваете под "правильным"?;)

Я полагаю, что это один из самых правильных, поскольку он ничего не пропустил:

#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

$ cat hello.c
#include <stdio.h>

int main(void)
{
    printf("Hello world!\n");
}

$ c99 hello.c
$ ./a.out
Hello world!
$

Ответ 9

"Официальным" будет один в первом издании "Язык программирования C" Кернигана и Ричи.

Для остроумия:

#include <stdio.h>
main()
{
    printf("hello, world\n");
}

Ответ 10

Тогда есть:

#include <stdlib.h>

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