大昔からある話だが,復習のためにやってみた.STLのlistをCから使ってみる.ポイントは, C++ でCから呼び出すためのラッパを書く ラッパ関数のプロトタイプ宣言は extern "C" で宣言する このとき,C++で読まれる場合とCから読まれる場合を__cplusplusで切り分ける. リンクはC++のコンパイルドライバを使う ラッパのヘッダファイル まず,ラッパのヘッダファイルlist_wrapper.hを書く.list_int_t は void * としている.C++のコンパイラでは__cplusplusが定義されているので,extern "C" が有効になる.これはC++での関数名のマングリングを行わないようにする仕掛け.これをいれることでC言語から同じ関数名で呼び出すことができるようになる. typedef void * list_int_t; #ifdef __cplusp