宣言と定義
まず宣言と定義について話しましょう
宣言は変数の名前を指すだけであり、定義は変数の名前を指すのではありません。定義に Declare
extern int i; //変数 i が割り当てられているため、まだ使用できません。次の 3 つの状況が発生する可能性があります。 Once
int i; //変数 i が定義され、スペースを割り当てた後、
extern int a =0 //グローバル変数 a を定義し、それに初期値を与えます
int a =0;グローバル変数 a に初期値を与えます
注: 変数はプログラム内で複数回宣言できますが、定義できるのは 1 回だけです。
グローバル変数: 関数内で定義された変数はローカル変数と呼ばれ、そのスコープは定義時点から関数の終わりまでです。関数の外で定義された変数はグローバル変数と呼ばれ、そのスコープは定義時点からです。ファイルの最後まで。
グローバル変数であってもローカル変数であっても、スコープは定義した場所から始まります
extern
externはグローバル変数の宣言に使用されます
#include<iostream>using namespace std;int main(){ extern int a; cout<<a<<endl; //int a=5; this is wrong , a should be a global variable getchar(); return 0; }int a=5;//global variable
他のヘッダーに変数や関数を含めるには#includeを使用してくださいファイル宣言、なぜ extern キーワードが必要なのでしょうか?グローバル変数または関数 a を参照したい場合は、ソース ファイルに #include
test.h
#include<iostream> using namespace std; int changea(); //int temp2=1; 如果在此定义temp2的情况下,main.cpp和test.cpp都包含了test.h,会造成temp2的重复定义 extern int temp3;
test.cpp
#include "test.h" int temp1=1000; //int temp2=10; 如果不注释掉会出错 int temp3=100; extern const int temp4=400;
main.cpp
#include <cstdlib>#include <iostream>#include "test.h"using namespace std;int main(int argc, char *argv[]){ extern int temp1; cout<<"temp1 is"<<temp1<<endl; extern int temp4; cout<<"temp4 is"<<temp4<<endl; //extern int temp2; //cout<<"temp2 is"<<temp2<<endl; cout<<"temp3 is"<<temp3<<endl; system("PAUSE"); return EXIT_SUCCESS; }
出力:
temp1 is1000
temp4 is400
temp3 is100
temp1: test.cpp int で宣言temp1=1000、main.cpp で temp1 を使用、最初に temp1 が外部変数であることを宣言します
temp2: test.h で定義、main.cpp と test.cpp の両方に test.h が含まれており、temp2 定義の重複が発生します。プログラムをコメントアウトしてコンパイルします
temp3: test.h で宣言、test.cpp で定義、main.cpp で使用します
temp4: const のデフォルトは、グローバルに宣言されている場合でもローカル変数に設定され、初期値は必須です定義時に割り当てられます。外部から参照したい場合は、 extern を追加する必要があります
つまり、原則は次のとおりです。他のファイルでグローバル変数を使用したい場合は、 extern 型の変数名を定義する必要があります。そうすれば、それを使用できます
const 変数は、定義の前に他のファイルで使用されたい extern を追加する必要があります
グローバル変数と extern 関連の記事については、PHP 中国語 Web サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ホットトピック









