Cのソースは関数の塊(1)2006年7月26日C言語は関数によってのみ記述されるプログラミング言語である。プリプロセッサ命令と呼ばれるコンパイラ指示の為の命令郡もあるが、あれはC言語そのものではないと思う。(↑誤解なきように)舞台の台本で言えば、プリプロセッサ命令→ト書き、関数→台詞、といったところか。演じるのはコンパイラ、著者はプログラマー、とそれぞれよく似ていると思う。前章で実行ファイルの生成に成功したことですっかり気を良くした私は、関数の呼び出しを復習することにした。作業自体は単純なものだ。計算式の部分を関数F(x)としてくくりだし、関数mainから呼出してやればよい。0;}ソースのダウンロードこんな感じである。人は上から下へ文章を読むことが習慣となっている為(少なくとも私はそう)、関数main()のほうが先にあったほうがプログラムを読みやすい。全体を見てから部分を読んだほうが、理解しやすいに違いない。半ば強引に話を持っていくと、下のようなソースが出来上がる。7;}ソースのダウンロード関数main()のあとに関数F(x)を持ってきたわけだ。C++のリファレンス関数mainを読んでいくと、関数F(x)が出てきて、では関数F(x)とはなんだろと考えながら読み進めていくと、関数F(x)の定義が現れる。物事の順序が流れとして捉えられ、非常に判りやすい(と思う)。残念ながらこのソースはコンパイラを混乱させるだけのようだ。関数F(x)が定義されてないよ、とのたまった後で、未定義の関数F(x)が再定義されてるよ、と矛盾したエラーを吐き出してとまってしまう。C言語では何かを使用する前に、その何かを定義しなければならない。何かとは、変数だったり関数だったりするわけだが・・・そこで、プロトタイプ宣言と云う手を使ってみる。7;}ソースのダウンロードこう書いておくとコンパイラは、関数F(x)がソース上のどこかにあるんだなぁ、と思い安心して読み進めてくれるらしい。勝手に探してくれればいいのに、と無粋な私なんか思ってしまうのだが、そこは素人の浅はかさ。ルールを守って頭で宣言しておけば間違いないわけだ。私のプログラミングスタイルでは、まずどんな関数が必要か考え、関数本体をコーディングした後、頭に戻ってプロトタイプ宣言を書くようにしている。カットアンドペーストと云うやつだ。時々後ろの";"を付け忘れてコンパイラを混乱の渦へと叩き込むが、そこはそれ、アマチュアの愛嬌ってことで許してもらいたい。実は、プロトタイプ宣言とはこんな事の為にあるわけではないのだ。上のソースなんて冗長なだけでダメダメの見本なのである。List.000-002の方が簡潔で判りやすいではないか。メビウスリング投稿掲示板には詩や歌や小説や日記、ゲームやアニメやコミック、小学生や中学生などの掲示板と過去ログがあります。