質問: c言語というのは初めにある関数がどのようなことをする関数であるのかを書いておいて、その関数をプログラムの中で使っていくという感じなのでしょうか?main関数などは、あらかじめstdio.hにより定義されているため
回答: C言語では、 どのような関数が存在するのか、と それぞれの関数が何をするのか、は 別々に書かれます(同時に書くことも可能ですが) 前者を「宣言」、後者を「定義」と呼びます。 基本的には、宣言だけがあれば、その関数を使う事ができます。 stdio.hの中には基本的な入出力を行う関数の宣言だけがあります。 宣言さえあれば、呼び出し方が分かるので、とりあえずは問題ないのです。 しかし、プログラム化する時には、定義部分が必要になります。 これは別の場所にあります。 main関数は、どこにも宣言も定義もされていません。 なせなら、それを宣言し、定義するのはあなたの役目だからです。 あなたがソースコードに書いたmain関数、それが、宣言であり定義になります。 C言語は、自分で様々な関数を宣言し定義して、プログラムを作ってく言語です。