C++の関数からCの関数を呼び出す C++の関数からCの関数を呼び出すことは、日常的に行なわれています。例えば、C++で書かれたプログラムがsqrt()等の標準Cライブラリー を利用 する際には、無意識にC++の関数からCの関数への呼び出しが行なわれています。ここでは、その舞台裏と、自分で書いたC関数を呼び出す方法を説明しま す。 ヘッダーファイル csub.h C++ソースファイル中で、これこれはCプログラム側で定義された関数あるいは変数であると宣言できます。次のように書きます。 extern "C" { 宣言の並び } 通常は、これをヘッダーファイルに書きます。C++のソースからも、Cのソースからもインクルードできるように、C++コンパイラーで定義されるマ クロ``__cplusplus''を使って場合分けします。実際に、C 標準ライブラリーのヘッダーファイルは、このような構造をしてい
C向けのライブラリのコードをながめていたらちょくちょく以下のようなコードをみる. #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* Cのコードがたくさん */ #ifdef __cplusplus } #endif /* __cplusplus */ なんだろうと思って調べてみたら. __cplusplus g++でコンパイルされるとdefineされるマクロ extern "C" { /* Cのコード */ } ブレースでかこまれた範囲で,リンカでの識別子の扱い方がCスタイルになる らしい."この範囲のコードはCで書かれてるから,g++でコンパイルするときはCだとおもってよろしくしてあげてね"ってことみたい. Cで書かれたライブラリはCで使われることもC++で使われることもあるから,こういうコードでうまくその差を吸収して
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く