25

Cの正しいHelloWorldプログラムは何ですか?

「chelloworld」のGoogle検索結果の最初のページは大きく異なり、多くは古いCであるため、簡単にコピーして貼り付けることができるように、標準バージョンを1か所にまとめたいと思います。

4

10 に答える 10

86

あなたがどれだけ怠惰であるかに依存します::)

#error Hello World
于 2012-09-10T23:50:56.020 に答える
52

これはCの標準のHelloWorldプログラムだと思います。

#include <stdio.h>

int main(void)
{
  printf("Hello World\n");
  return 0;
}
于 2012-09-10T16:26:34.437 に答える
18

C99またはC2011では、次の5行のコードを使用できます。

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

C99(C89ではない)では最後にを省略できるreturn 0;ため、呼び出し元の環境に決定論的ステータス0(成功)が返されます。関数への未使用の引数はありません。puts()ヘッダーからのプロトタイプがあります。出力には、適切な行末が含まれます。私はそれがコーシャであり、本質的に最小限だと思います。

于 2012-09-10T22:10:13.903 に答える
10

公式のGNUHelloWorldはここにあります:http ://www.gnu.org/software/hello/

GNU Helloプログラムは、親しみやすく親しみやすい挨拶を生成します。はい、これは「Hello、world!」を出力するクラシックプログラムの別の実装です。あなたがそれを実行するとき。

ただし、よく見られる最小バージョンとは異なり、GNU Helloは引数リストを処理して動作を変更し、多くの言語での挨拶などをサポートします。GNU Helloの主な目的は、これらのことを行う他のプログラムを作成する方法を示すことです。これは、GNUコーディング標準とGNUメンテナプラクティスのモデルとして機能します。

GNU HelloはCで記述されています。特に他の言語への翻訳を含む、他のプログラミング言語での実装については、GNUGettextディストリビューションを参照してください。

于 2012-09-10T20:13:47.660 に答える
10

複数あり、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、およびスクーターに特に感謝します。

于 2012-09-10T16:27:44.933 に答える
4
#include <stdio.h>

int main()
{
  printf("Hello World\n");
  getchar();
  return 0;
}
于 2012-12-06T01:20:30.277 に答える
4

「公式」のものは、カーニハンとリッチーによる「Cプログラミング言語」の初版のものになります。

ウィットに

#include <stdio.h>
main()
{
    printf("hello, world\n");
}
于 2012-09-10T21:23:01.253 に答える
3

「正しい」とはどういう意味ですか?

何も見逃さないので、これが最も正しいと思います。

#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」を使用してください。

于 2012-09-10T16:32:44.090 に答える
2
$ cat hello.c
#include <stdio.h>

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

$ c99 hello.c
$ ./a.out
Hello world!
$
于 2012-09-10T20:43:10.593 に答える
-1

次にあります:

#include <stdlib.h>

int main()
{
  system("echo Hello World!");
  return 0;
}
于 2012-09-10T23:45:27.910 に答える