Article View: fj.lang.c
Article #542Re: 標準ライブラリー関数の定義はどこ に ?
From: sp4049tk
Date: Tue, 31 Mar 1998 00:00
Date: Tue, 31 Mar 1998 00:00
41 lines
1989 bytes
1989 bytes
> : ちにみにinclude行を書かずに、
> : ライブラリ関数の宣言だけをつけてもコンパイル実行が
> : うまくいくということは既にコンパイラがその関数の定義を
> : 持っているということでしょうか?
>
> いいえ、コンパイラー「自体」はその関数を「知りません」。
>
わたしの環境では、
main() /*printf()の宣言をしない。*/
{
printf("hello");
}
とやってもコンパイル、実行出来ますが、
これは環境が特殊でからでしょうか?
コンパイラー自身がこの関数を知っているように思えるのですが、、、
> : extern int printf(const char *format, ...); /*includeしない*/
> : main() { printf("hello world\n");}
>
> ではためしに「printf()」の代わりに「foo()」という、ライブラリー関数に「ない」
> 名前の関数でやったら、どういうエラーが出るのか確認してみてください。
>
> 注意すべきなのは、「そのエラーメッセージには行番号がついているかどうか」です:)
>
この考え方面白いですね。
行番号がついていないことに注目するわけですか。
> 「リンカー」とか「ローダー」っていう言葉を聞いたことないですか?
> (英語だとそれぞれ「linker」、「loader」)
>
一応知ってます。
では
田中
Technical Details
Message-ID:
<sp4049tk.98Mar3110130@kisokou10.ex.ecip.osaka-u.ac.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<sp4049tk.98Mar28191830@kisokou05.ex.ecip.osaka-u.ac.jp> <1998Mar28.111741.5702@merope.opus.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,419345b2de002f4a X-Google-Attributes: gid106434,public From: sp4049tk@ex.ecip.osaka-u.ac.jp Subject: Re: 標準ライブラリー関数の定義はどこ に ? Date: 1998/03/31 Message-ID: <sp4049tk.98Mar3110130@kisokou10.ex.ecip.osaka-u.ac.jp> X-Deja-AN: 339311506 References: <sp4049tk.98Mar28191830@kisokou05.ex.ecip.osaka-u.ac.jp> <1998Mar28.111741.5702@merope.opus.or.jp> Content-Type: text/plain; charset=ISO-2022-JP Organization: Education Center for Information Processing, Osaka University, JAPAN Mime-Version: 1.0 Reply-To: sp4049tk@ex.ecip.osaka-u.ac.jp NNTP-Posting-User: sp4049tk (tanaka kurando) Newsgroups: fj.lang.c