>>452のようにソース変更しましたが
関数を使いたいところでincludeして使おうとしても
定義されていない識別子と言われてしまいました。

>>448さんが言っている事もなんとなく理解できてきたのですが
いくつか腑に落ちない点が。

stdio.hやstdlib.hをいくつインクルードしても
エラーが出ない理由はどうしてでしょうか?

先の理由から考えると
コンパイラに渡されるときに
#include <stdio.h>の一文がstdio.hの内容にすり替わっているので
リンクエラーになる、と考える事ができるのでは無いかと思ってしまいます。
stdio.hの中を覗くと回避方法は#ifndef〜#endifで実現しているように見えます。


根本的な事から間違っているような気がしてきました・・・。