C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C言語のinline関数とextern

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■83938 / inTopicNo.1)  C言語のinline関数とextern
  
□投稿者/ へいね (1回)-(2017/04/25(Tue) 21:39:37)

分類:[C/C++] 

C言語の話ですけれども、
あるファイルに定義しているinline関数が
別のファイルでextern 関数として利用できないでしょうか。

MS visual studio コンパイルエラー出ました。

どうして?

引用返信 編集キー/
■83939 / inTopicNo.2)  Re[1]: C言語のinline関数とextern
□投稿者/ Azulean (815回)-(2017/04/25(Tue) 21:53:32)
2017/04/25(Tue) 21:54:16 編集(投稿者)

No83938 (へいね さん) に返信
> あるファイルに定義しているinline関数が
> 別のファイルでextern 関数として利用できないでしょうか。

できませんね。


> どうして?

別の c ファイルから参照するためには、元の c ファイルが「関数」として見えるようにしていなければなりません。
しかし、inline 指定は「その関数を利用している箇所にインライン展開(埋め込むこと)する」ことを求めているので、関数として残りません。
(C 言語は 1 ファイルごとにコンパイルしますので、他の c ファイルがどのように利用しているかは考慮しません)
ゆえに関数がないのですから、他の c ファイルから利用することはできません。

inline 関数を複数の c ファイルで利用したいなら、h ファイルに書いてください。
引用返信 編集キー/
■83941 / inTopicNo.3)  Re[1]: C言語のinline関数とextern
□投稿者/ とっちゃん (432回)-(2017/04/26(Wed) 10:47:23)
No83938 (へいね さん) に返信
> C言語の話ですけれども、
> あるファイルに定義しているinline関数が
> 別のファイルでextern 関数として利用できないでしょうか。
>
> MS visual studio コンパイルエラー出ました。
>
> どうして?
>
Visual Studio の「C言語」サポート範囲でも inline 関数って使えるんでしたっけ?

いずれにしても、コンパイルエラーが出たのなら、そこにエラーの直接的な理由が書かれています。
まずは、そのコンパイルエラーを解決するにはどうすればいいかを考えるところから始めてはいかがでしょう?

また、エラーが出ただけではなく、どんなエラーかも含めて書いて質問すると、より適切な回答を得られることもあります。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ