みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

最小のC言語プログラム

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

最小のC言語プログラム

投稿記事 by みけCAT » 14年前

http://www.geocities.jp/ky_webid/Progra ... c/001.html
このページに「最小のC言語プログラム」を書けという問題があります。
問題① 最小のC言語プログラムを、何も例を見ないで書いて下さい。改行位置などは自由ですが、自分のスタイルを決めて書いてみて下さい。

※この問題に解答はありません。基本的にコンパイルが成功すれば問題はありません。ただし、あまりに見にくい書き方は避けましょう。
おそらく作者の意図としては

CODE:

int main(void) {
    return 0;
}
と書かせたいのでしょう。
しかし、これは最小ではありません。
まず、わざわざ「基本的にコンパイルが成功すれば問題はありません。」と書いてあります。
そして、「規格に合った」とは一言も書かれていません。
というわけで、正解はこれでしょう。

CODE:

main(){}
「ただし、あまりに見にくい書き方は避けましょう。」とは書いてありますが、
このくらいなら「あまりに見にくい」とまでは言えないと思います。
自分にとって「あまりに見にくい書き方」とはこういうものだと思います。

CODE:

                             int




     main





                        (





                                 void




            )



                                        {

                   return



    0

                                     ;





              }
ただし、「自分のスタイルを決めて書いてみて下さい。」には反するかもしれませんね。

ISLe
記事: 2650
登録日時: 15年前

Re: 最小のC言語プログラム

投稿記事 by ISLe » 14年前

みけCAT さんが書きました:まず、わざわざ「基本的にコンパイルが成功すれば問題はありません。」と書いてあります。
そして、「規格に合った」とは一言も書かれていません。
正しく実行できなければならないとも書いてありませんね。
とことん深読みすれば↓のようになるかと。

CODE:

*main;
これでもコンパイルして実行ファイルを作れます。
実行するとまっしぐらに暴走します。

アバター
bitter_fox
記事: 607
登録日時: 14年前

Re: 最小のC言語プログラム

投稿記事 by bitter_fox » 14年前

最小というのは、ステップ数がということだと思いますが、まぁ、最短でとらえるのであれば次のプログラムなんかどうでしょう。

CODE:

m(){}
リンカオプションでエントリポイントをmに変更したらコンパイルできるので一応は問題ないと思います。

これをISLeさんの奴に乗せると

CODE:

*m;
で3Bになりますねw

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 最小のC言語プログラム

投稿記事 by みけCAT » 14年前

「コンパイル」だけで、「リンク」については何も書かれていないので、
何も書かないのが最小ですね。
たとえばnothing.cという0バイトのファイルを作って
gcc -c -o nothing.o nothing.c
とやると、ちゃんとnothing.oが生成されます。

アバター
あーる@Reputeless
記事: 84
登録日時: 15年前

Re: 最小のC言語プログラム

投稿記事 by あーる@Reputeless » 14年前

最小じゃないけど可愛いコードを (╹◡╹*

main=~60;


追記:
こっちのほうが顔に見えて可愛いかった

main=~'<';

http://ideone.com/7cgZ2
最後に編集したユーザー あーる@Reputeless on 2011年1月18日(火) 22:42 [ 編集 1 回目 ]

ISLe
記事: 2650
登録日時: 15年前

Re: 最小のC言語プログラム

投稿記事 by ISLe » 14年前

すみません。*いりませんでした。
main;
だけで実行ファイル作れました。
みけCAT さんが書きました:たとえばnothing.cという0バイトのファイルを作って
gcc -c -o nothing.o nothing.c
とやると、ちゃんとnothing.oが生成されます。
ファイル作る必要もないですよ。
gcc -c -o nothing.o -x c - < /dev/null
#ウインドウズなら/dev/nullのかわりにNUL