スポンサードリンク
HOME > C++言語 > リンケージ指定 extern "C"

C++言語 - リンケージ指定 extern "C"

C++言語では、C言語の仕様を含むため、C言語の記述ができます。

しかし、C言語とC++言語のコンパイルの仕方に違いがあり、

完全にC言語でコンパイルされたライブラリ、オブジェクトファイルなどを

C++言語から使う場合には、リンケージ指定と言う機能を使う事になります。

リンケージ指定すると、「その部分はC言語でコンパイルされている部分だから

適切に処理してくれ。」とコンパイラに教える役目を果たします。

例えば、C言語で作ったライブラリmylib.libがあり、そのヘッダファイルは、

mylib.hの場合、それをC++言語から使うならば、以下のような記述が必要です。


extern "C"
{
#include "mylib.h"
}


このextern "C"で囲まれたブロックがリンケージ指定された部分と言う意味です。



関数単位でリンケージ指定する

ある特定の関数をC言語スタイルでコンパイルしたい場合も

リンケージ指定を使います。

この場合、関数のプロトタイプ宣言のみをリンケージ指定すればOKです。


extern "C"
{
   void func1(void);
   void func2(void);
}




標準ライブラリ関数について

C言語標準のライブラリ関数はC言語でコンパイルされているので、

リンケージ指定が必要ではないか?と思われるかもしれませんが、

見えないところでリンケージ指定をやってくれているコンパイラが多いようなので、

通常、気にする事はほとんどありません。



スポンサードリンク







HOME

言語解説編
プログラミング用語・知識

C言語

C++言語

Java

C#

Visual Basic.NET

アプリケーション編
C言語による
コンソールプログラミング




Copyright (C) プログラミングランド All Rights Reserved