🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.c
Article #542

Re: 標準ライブラリー関数の定義はどこ に ?

#542
From: sp4049tk
Date: Tue, 31 Mar 1998 00:00
41 lines
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-mail
References: <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