C言語なら俺に聞け 158at TECHC言語なら俺に聞け 158 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト409:デフォルトの名無しさん 22/03/25 06:50:38.08 0hAphrOld.net いえ、それはそのライブラリの作者(メンテナンスしてる人)が標準ヘッダ内で定義すべき内容です ユーザーは>>397を自分のファイル内で使用してバージョンの差異を吸収できます 410:デフォルトの名無しさん 22/03/26 01:22:16.42 EYuSPLit0.net >>398,400,401 説明のための例のようですね、失礼しました あと、この定数が未定義の場合の値は0になるのですね そのあたりを理解していませんでした どうもありがとうございました 411:デフォルトの名無しさん 22/03/26 16:05:05.08 EYuSPLit0.net コンパイル(リンク)時に、同じプロジェクト内の別ソースの関数などを呼び出せるのはなぜ? インクルードして教えてる訳でもないのに、もしかして全ソースを探しに行ってるんですか? 412:デフォルトの名無しさん 22/03/26 17:27:18.26 T/pJeR6z0.net 全ソースから探し出すのがリンク includeとかで関数宣言だけは見えるようにする必要はあるが。 main.c ----------- char* func(int size); int main(){ char* p=func(16); } ----------- funcという名前の関数は、 前方宣言(1行目)してるのでリンク時に探しに行く。 リンク時の解決用に定義した関数(とその実装)を.objファイルに一覧としてまとめる。 リンクという作業では、.objと.libと.dllから"func"という名前の関数を探し出す。 見つからなかったり2つ以上見つかったらリンクエラーになる。 古いCだと前方宣言がなければ int func(); 決め打ちで前方宣言扱いしたりする。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch