C++で40バイトのHello Worldを書いた
Hello Worldはプログラミング言語の入門書でおなじみのプログラムで、入力を受け付けず、"Hello, world!"を出力するプログラムです。Hello Worldを、C++で40バイトのものを書きました。
main(){__builtin_puts("Hello, world!");}
これだけではよくわからないと思いますので、順を追って説明します。
C++で普通にHello Worldを書くと次のようになります。
#include <iostream> int main() { std::cout << "Hello, world!\n"; }
長いですね。削除できる空白や改行を除いても60バイトもあります。まずiostreamのかわりにCのstdioを使って書きなおします。
#include <cstdio> int main() { puts("Hello, world!"); }
51バイト。main関数の戻り値の型を消しましょう。
#include <cstdio> main() { puts("Hello, world!"); }
47バイト。実はC++では戻り値の型を省略できないことになっているのですが、g++では警告が出るもののコンパイルが通りました。さてincludeが邪魔ですね。削除しましょう。
main()
{
puts("Hello, world!");
}
これで30バイト!と言いたいところですがg++には通りませんでした。C++の規格からすると当然なのですが。そこでputs関数の代わりに、ヘッダをインクルードする必要がないビルトイン関数の__builtin_putsを使います。
main()
{
__builtin_puts("Hello, world!");
}
空白や改行を削除して
main(){__builtin_puts("Hello, world!");}
40バイトのHello Worldの完成です。
2011年8月22日現在、Anarchy Golfというサイトでこのコードが1位になっています。