掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.30190

関数の格納場所について
投稿者---C初学者(2007/05/24 11:02:32)


お世話になります。
素朴な疑問なのですが、標準ライブラリ関数と呼ばれるものの実態はどこにあるのでしょうか?というのは、先程、stdio.hをインクルードし忘れて、printf関数やscanf関数を使用したプログラム実行したにも関わらず、いくつか警告がでたもののエラーにはならなかったのです。stdio.hを覗いてみると、プロトタイプ宣言は複数あるものの、その実体が存在しないように思われます。どうかご助言下さい。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:関数の格納場所について 30191 YuO 2007/05/24 11:42:42


No.30191

Re:関数の格納場所について
投稿者---YuO(2007/05/24 11:42:42)


>素朴な疑問なのですが、標準ライブラリ関数と呼ばれるものの実態はどこにあるのでしょうか?

ライブラリの中にあります。
標準関数の含まれるライブラリは,通常自動でリンクされるため,コンパイル時に警告が出ただけだったのでしょう。


この投稿にコメントする

削除パスワード

No.30192

Re:関数の格納場所について
投稿者---C初学者(2007/05/24 12:57:36)


>ライブラリの中にあります。
>標準関数の含まれるライブラリは,通常自動でリンクされるため,コンパイル時に警告が出ただけだったのでしょう。

返信ありがとうございます。これは初耳でした。なるほど納得です。
では、通常自動でリンクされるということですが、これはコンパイラによりけりという解釈でよろしいでしょうか?
あと、全ての標準関数はライブラリに含まれているということですが、具体的にはprintfとscanfの実体はどこに記述されているのでしょうか?先程からstdio.hの中身をさがしているのですが見当たりません。
重ね重ねご助言お願いいたします。


この投稿にコメントする

削除パスワード

No.30193

Re:関数の格納場所について
投稿者---acid(2007/05/24 13:21:43)


.hというのはヘッダファイルですから、そこに書かれているのはプロトタイプ宣言だけです。
実際の処理はライブラリに記されています。
で、そのライブラリはどこにあるのかと聞かれたら…どこだろう?w
borlandなら、C:\borland\bcc55\Libにあるobjとかlibファイルがそうなんだろうか。
中は見れないけどw

同じような質問
http://oshiete1.goo.ne.jp/qa2933878.html
標準ライブラリの実装をしているページ。
関数の中身が書かれています。
色々勉強になりますね。
http://libc.blog47.fc2.com/blog-category-8.html



この投稿にコメントする

削除パスワード

No.30194

Re:関数の格納場所について
投稿者---C初学者(2007/05/24 14:51:06)


>同じような質問
>http://oshiete1.goo.ne.jp/qa2933878.html
>標準ライブラリの実装をしているページ。
>関数の中身が書かれています。
>色々勉強になりますね。
>http://libc.blog47.fc2.com/blog-category-8.html

返信ありがとうございます。
リンク先とても参考になりました。
borland社製コンパイラでは、中身はブラックボックスとなっているらしいということで諦めます。


この投稿にコメントする

削除パスワード

No.30195

Re:関数の格納場所について
投稿者---たかぎ(2007/05/24 20:31:29)
http://takagi.in/


>>http://libc.blog47.fc2.com/blog-category-8.html
>リンク先とても参考になりました。

上のリンク先を書いている者です。
# 最近は忙しくてサボりっぱなしですが...

>borland社製コンパイラでは、中身はブラックボックスとなっているらしいということで諦めます。

Turbo C++をインストールすれば、バージョンは少し新しいものになりますが、ライブラリの全ソースを見ることができます。
http://www.turboexplorer.com/jp/cpp

簡単なもので構いませんので、できれば自分で一度ライブラリを作ってみるとよいでしょう。想像だけで済ませるより、ずっと理解が深まるはずです。
コマンドラインツールの場合、tlibコマンドを使えばライブラリが作れます。幸い、ヘルプの中にツールの使い方が書かれています。



この投稿にコメントする

削除パスワード

No.30198

Re:関数の格納場所について
投稿者---C初学者(2007/05/25 09:03:36)


たかぎ様から直々にご助言いただけるとは・・・
ライブラリはもう少しCに習熟してから、御HPを参考にさせていただいて挑戦したいと思います。わざわざありがとうございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧