Article View: fj.lang.c
Article #550Re: 標準ライブラリー関数の定義はどこに ?
From: FUJIHARA Keiichi
Date: Tue, 31 Mar 1998 00:00
Date: Tue, 31 Mar 1998 00:00
56 lines
3007 bytes
3007 bytes
藤原と申します
In article <sp4049tk.98Mar3110130@kisokou10.ex.ecip.osaka-u.ac.jp>
sp4049tk wrote on 31 Mar 98 10:01:30 +0900
>
>わたしの環境では、
>
>main() /*printf()の宣言をしない。*/
>{
> printf("hello");
>}
>
>とやってもコンパイル、実行出来ますが、
>これは環境が特殊でからでしょうか?
>コンパイラー自身がこの関数を知っているように思えるのですが、、、
コンパイラ自身は「知らない」ので、適当に(引数をスタックに積んで、
printf という関数をとにかく「呼ぶ」という)処理をします。
あとは、たまたま、標準ライブラリに(コンパイル済みの) printf の
実体があるので、「リンカ」がつじつまをあわせてくれます。
>>
>> ではためしに「printf()」の代わりに「foo()」という、ライブラリー関数に「ない」
>> 名前の関数でやったら、どういうエラーが出るのか確認してみてください。
>>
>> 注意すべきなのは、「そのエラーメッセージには行番号がついているかどうか」です:)
>>
>この考え方面白いですね。
>行番号がついていないことに注目するわけですか。
どんなエラーが出るか確かめて、「行番号のついていない」のは、リンカが
出したエラーです。言い換えるとコンパイラは、foo() という関数を呼んでも
(ライブラリ関数ではないから知っているはずはないのに)エラーもなにも出さない
というわけです。
>> 「リンカー」とか「ローダー」っていう言葉を聞いたことないですか?
>> (英語だとそれぞれ「linker」、「loader」)
>>
>一応知ってます。
だから、「コンパイルできて実行できる」としても、
「コンパイラ自身が知っている」のでははなく、
「リンカがちゃんと探して来てくれる」から、実行できるわけです。
--
【プロバイダ変更にともない、メールアドレスが変わりました】
旧 erika@apionet.or.jp は98年3月末日まで存続の予定です。
-----------> FUJIHARA Keiichi is *not* a female but ... <-------------
E-Mail: erika@may.email.ne.jp -- URL: (現在移行作業中)
E-Mail: kfujiha@anet.ne.jp
----------------------------------------------------------------------
Technical Details
Message-ID:
<6fqlgg$1dv6$1@neptune.asahi-net.or.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> <sp4049tk.98Mar3110130@kisokou10.ex.ecip.osaka-u.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,419345b2de002f4a X-Google-Attributes: gid106434,public From: erika@may.email.ne.jp (FUJIHARA Keiichi) Subject: Re: 標準ライブラリー関数の定義はどこに ? Date: 1998/03/31 Message-ID: <6fqlgg$1dv6$1@neptune.asahi-net.or.jp> X-Deja-AN: 339441810 X-Posting-Software: WSNews 2.01beta1 References: <sp4049tk.98Mar28191830@kisokou05.ex.ecip.osaka-u.ac.jp> <1998Mar28.111741.5702@merope.opus.or.jp> <sp4049tk.98Mar3110130@kisokou10.ex.ecip.osaka-u.ac.jp> Content-Type: text/plain; charset=ISO-2022-JP X-Complaints-To: ap-net@asahi-net.or.jp X-Trace: neptune.asahi-net.or.jp 891345232 47078 (None) 202.213.157.158 Organization: OMRON Kurayoshi (through Asahi-net) Mime-Version: 1.0 Reply-To: FUJIHARA Keiichi <erika@may.email.ne.jp> Newsgroups: fj.lang.c