C言語は、標準ライブラリとしてprintf()関数のようなシステムが提供するべき基礎的な機能を用意しています。他にも、ファイルの入出力や数学、時間、文字列制御などの関数を最初から用意しています。これら標準関数に加えて、私たちが書くプログラムの中で、新しい関数を作成することができます。プログラムの機能を部品化して関数単位にまとめることで、自分や他人が作った関数を組み合わせて新しいプログラムを作れるようになります。
これまで何度も書いてきたmain()関数もまた、私たちが自作してきた独自の関数です。しかし、すべてのコードをmain()関数に詰め込んでいては、コードが長くなり読むのも書くのも大変になってしまいます。そこで、複雑な計算処理は、より単純で小さな単位に分解して別の関数にしてしまいます。そうすることで、複雑な処理を関数内部に隠蔽して、関数の利用者は関数に渡すパラメータと、関数の働き、関数の結果だけを知ればよくなります。関数が行う具体的な処理について、詳しく理解する必要はありません。
これまでも、私たちはprintf()関数を使ってきましたがprintf()関数が内部でシステムとどのような通信を行い、文字列を画面に表示しているか、その具体的な方法は知る必要がありませんでした。重要なのは、printf()関数に渡した文字列が画面に表示されるということだけです。
プログラムが複雑になれば、記述するコードも必然と長くなります。それらをmain()関数に詰め込むことは困難です。適切な単位で関数にコードを分割することで、何度も繰り返し使うような計算が関数を呼び出すだけで実行できるようになります。複雑な処理を何度もコードで書く必要がなくなるため、ミスを少なくすることができ、コードも読みやすくなります。また、一部の処理にバグが見つかり修正しなければならない場合にも、関数に分割されていれば、コード全体を書き直さなければならなくなるといったリスクを減少できます。
Visual C++ 2008 Express Editionのインストールや設定方法については「ゼロからはじめるC言語 - 環境構築編」を参照してください。