出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/26 23:51 UTC 版)
「キーワード (C++)」の記事における「extern」の解説
Cからの外部結合の指定に加え、リンケージ指定の用法が加わっている。 C++では名前(関数名や変数名など)に対して多重定義や名前空間、型安全の保障などの都合から、多くのコンパイラは名前修飾を施しCとは異なった名前をリンカに対して用いている。その名前の修飾の仕方を指定するのがリンケージ指定である。少なくとも"C"と"C++"の2種類のリンケージが使用できる。何も指定しないと"C++"になる。"C"リンケージでは名前の変形を抑止しCと互換の名前をリンカに対して用いることを意味する。これによりCとC++を混在させてプログラムを作るときに使われる。 //a.cppextern "C" { int a; //Cリンケージの変数定義 extern int b; //Cリンケージの変数宣言 void f(); //Cリンケージの関数宣言}extern "C" int c; //リンケージ指定と元々の外部結合の意味を兼ねた用法。//b.cextern int a; //変数の宣言int b; //変数の定義int c;void f(){ /* ~ */} また、extern templateの形でテンプレート実体化宣言を修飾して、外部で実体化されたテンプレートを指定する(*)。
※この「extern」の解説は、「キーワード (C++)」の解説の一部です。
「extern」を含む「キーワード (C++)」の記事については、「キーワード (C++)」の概要を参照ください。