Correcto Hello World en C

¿Cuál es el progtwig correcto de Hello World en C?

Dado que la primera página de los resultados de Google para “c hello world” varía mucho y muchos son viejos C, me gustaría tener la versión estándar en un solo lugar para copiar y pegar fácilmente.

Depende de lo perezoso que seas: 🙂

 #error Hello World 

Creo que este es un progtwig estándar de Hello World en C:

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

En C99 o C2011, podría usar estas cinco líneas de código:

 #include  int main(void) { puts("Hello World!"); } 

Dado que C99 (pero no C89) le permite omitir la return 0; al final, devuelve un estado determinista de 0 (éxito) al entorno de llamada. No tiene ningún argumento no utilizado para la función. Tiene el prototipo para puts() del encabezado. La salida incluye un final de línea apropiado. Creo que es kosher y esencialmente mínimo.

El GNU Hello World oficial se puede encontrar aquí: http://www.gnu.org/software/hello/

El progtwig GNU Hello produce un saludo familiar y amigable. Sí, esta es otra implementación del progtwig clásico que imprime “¡Hola, mundo!” Cuando lo ejecutas.

Sin embargo, a diferencia de la versión mínima que se ve a menudo, GNU Hello procesa su lista de argumentos para modificar su comportamiento, admite saludos en muchos idiomas, etc. El propósito principal de GNU Hello es demostrar cómo escribir otros progtwigs que hacen estas cosas; Sirve como modelo para los estándares de encoding de GNU y las prácticas de mantenimiento de GNU.

GNU Hello está escrito en C. Para las implementaciones en otros lenguajes de progtwigción, especialmente la traducción a otros lenguajes, consulte la distribución GNU Gettext.

Hay más de uno, y aunque la respuesta de Tor es buena, prefiero usar siempre la función principal argc / argv.

 #include  int main(int argc, char** argv) { printf("Hello World\n"); return 0; } 

En el raro y extraño evento en el que se comprobó que printf falla, puede encontrar

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

Como cualquier progtwig de C, esto se ha modificado demasiadas veces para intentar que sea aún menos con errores. Un agradecimiento especial a R .., dmp y Scooter que realmente merecen más crédito del que puedo dar.

El “oficial” sería el de la primera edición de “The C Programming Language” de Kernighan y Ritchie.

A ingenio

 #include  main() { printf("hello, world\n"); } 
 #include  int main() { printf("Hello World\n"); getchar(); return 0; } 

¿Qué quieres decir con “correcto”? 😉

Supongo que este es el más correcto, ya que no se pierde nada:

 #include  #ifndef HELLO_STRING #define HELLO_STRING "Hello, world!" #endif int main(int argc, char *argv[], char *envp[]) { puts(HELLO_STRING); return 0; } 

Sin embargo, este progtwig no está localizado, si desea la localización, use libintl;)

 $ cat hello.c #include  int main(void) { printf("Hello world!\n"); } $ c99 hello.c $ ./a.out Hello world! $ 

Luego está:

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