ホームページ  >  記事  >  バックエンド開発  >  C/C++ で extern キーワードを使用する方法

C/C++ で extern キーワードを使用する方法

little bottle
little bottle転載
2019-04-29 10:56:543469ブラウズ

この記事では、C/Cにおけるexternキーワードの使い方を、主に変数を変更する際の使い方について紹介しますので、参考にしてください。 、お役に立てば幸いです。

1. 基本的な説明
extern は、変数または関数の前に配置して、変数または関数の定義が別のファイルにあることを示し、コンパイラーにこの変数を検出するように指示することができます。または関数 他のモジュールでその定義を探す場合。さらに、extern を使用して仕様をリンクすることもできます。
extern には 2 つの関数があります: (1) extern "C" void func(int a); のように、「C」と一緒に使用される場合、func 関数をコンパイルするときに C の規則に従うようにコンパイラーに指示します。 name. C の代わりに対応する関数名を翻訳します。この点については、書籍「C オブジェクト モデルの詳細な探索」で答えが見つかるかもしれません。さらに、Linux には、スタック情報を出力し、C に翻訳された関数名を表示できるバックトレース関数があります (この関数は Muduo ライブラリで使用されます)。
(2) ヘッダー ファイルなどで変数または関数を変更するために extern が "C" と一緒に使用されない場合: extern int g_Int; その機能は関数またはグローバル変数キーワードのスコープを宣言することです。宣言された関数と変数はこのモジュールまたは他のモジュールで使用できます。これは定義ではなく宣言であることに注意してください。
2. extern が変数を変更する場合
これを使用する正しい方法は、.c ファイルで変数を定義し、対応する .h ファイルでそれを宣言することです。
宣言か定義かは、変数にメモリ空間が確保されるかどうかで判断します(厳密にはメモリを確保するだけで初期化部分は含まれません)。それでは、文 int i; はそれを宣言するのでしょうか、それとも定義するのでしょうか?それはステートメントでもあり、定義でもあります。 test.h ファイルでこの文を使用すると、一度 i が他のファイルで定義されたり (例: 1)、ファイルが繰り返しインクルードされると (例: 2)、再定義エラーが発生します。

/*
	e.g.1 	以下为3个文件
*/
//test.h
int i;

//test2.h
int i;

//main.cpp
#include "test.h"
#include "test2.h"
int main()
{
	return 0;
}
/*
	e.g.2 	以下为3个文件
*/
//test.h
int i;

//test2.h
#include "test.h"

//main.cpp
#include "test.h"
#include "test2.h"
int main()
{
	return 0;
}

関連チュートリアル: C ビデオ チュートリアル

以上がC/C++ で extern キーワードを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。