宣言のみで動く関数?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
にゃんにゃんc言語

宣言のみで動く関数?

#1

投稿記事 by にゃんにゃんc言語 » 9年前

お世話になっております。初めて質問させて頂きます。

この前とある大きなコードを見ました(事情によりこちらに貼る事はできません、すみません)。
そこで呼び出されているある1関数の中身が見たくなり検索をかけたのですが、
どれだけ検索をかけても宣言と呼出個所がでるだけで、中身がどこにも書かれておりませんでした。

ここで質問なのですが、
そんな事(宣言のみで関数が動く)という事はあるのでしょうか?(私の検索方法が悪いだけでしょうか?)
あるとしたら、APIか何かを使用しているという事でしょうか。
恐らくなんらかの形でAPIは使用していると思いますが、だとしても検索かけたら関数の中身が記述している個所はでるはずですし…
なぜ宣言のみでビルドが通り、所定どおりの動作をするのか分からず悩んでおります。

コードを記載できず、あいまいな質問になってしまい申し訳ございません。
どうかご回答よろしくお願いいたします。

box
記事: 2002
登録日時: 14年前

Re: 宣言のみで動く関数?

#2

投稿記事 by box » 9年前

関数群のコードをコンパイルしてできたオブジェクトコード群を
ライブラリーの形にしてあって、何かのソフトウェアを
開発する際にそのライブラリーをリンクするようになっているのではないでしょうか。
ライブラリーの形になっているから、当該の関数群のコードは見えなくてもかまわないってことで。

そのライブラリーを使う際は、そこに含まれている関数のプロトタイプ宣言が書いてある
ヘッダーをインクルードする必要があるってことで。

端的な例では標準関数を使うときがそうなっているわけで、
例えば我々はprintf関数のコードがどこにあるかは知らないけど
プロトタイプ宣言はstdio.hに書いてあるから、それをインクルードしておけば
普通に使えるようになっているってことで。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

閉鎖

“C言語何でも質問掲示板” へ戻る