C++相談室 part9
■ このスレッドは過去ログ倉庫に格納されています
0054デフォルトの名無しさん
NGNGC++では関数の多重定義などの機能を、リンカの重大な変更無しに実現する
ために、「名前マングリング」を行う。
これは、同一名の関数の名前に異なる名前を付加し、異なった関数として扱う
ための内部的テクニックであって、コンパイラによってその実現方法は異なる
ものの、リンカに変更を加えていない処理系では大同小異である。
どのように「名前マングリング」が行われるのか直に目で見たければ、ソース
のコンパイル結果をアセンブリ出力して、関数にどんなラベルがついているか
見ればよい。
extern "C" キーワードは、そのような「名前マングリング」を行わないことを
コンパイラに指示し、従来のCでコンパイルされたオブジェクトとのリンクを可能
にする。
■ このスレッドは過去ログ倉庫に格納されています