聲明一個全局變量可以跨文件使用---extern的使用


變量定義

變量定義使用“數據類型+變量名稱”的形式,編譯器需要給他分配內存單元的;

 

變量聲明----聲明的時候不能賦初值,否則就變成定義了

變量聲明使用“extern 變量類型+變量名稱”的形式,是告訴編譯器我這個變量將在其他外部c文件中定義,我這里只是在外部用它。編譯器就不給他分配內存空間,而等到真正遇到變量定義的時候再給他分配內存空間。

 

使用關鍵字extern可以實現全局變量的跨文件使用

一共有五個文件,分別是main.cpp、A.h、A.cpp、B.h、B.cpp

1、在A.h中聲明一個變量為外部全局變量

#ifndef A_H
#define A_H
//聲明變量為外部變量
extern int val;
void GetNum_A();
#endif 

 

2、在A.cpp文件中定義和初始化全局變量(注意:如果定義在局部變量里面就不能被其它文件調用了)

#include<iostream>
#include"A.h"
using namespace std;
int val = 11;
void GetNum_A()
{
    cout << val << endl;
}

3、在B.h文件中導入A.h的頭文件

#ifndef B_H
#define B_H
#include"A.h"
void GetNum_B();
#endif 

4、在B.cpp文件中導入B.h的頭文件(或者直接導入A.h)

#include<iostream>
#include"B.h"
using namespace std;
int val = 13;
void GetNum_B()
{
    //val++;
    cout << val << endl;
}

5、在main.cpp文件中使用

#include<iostream>
#include"A.h"
#include"B.h"
using namespace std;
int main()
{
    cout << "GetNum_A=" ;
    GetNum_A();
    cout << "GetNum_B=";
    GetNum_B();
    system("pause");
    return 0;
}

輸出

 

 

注意:只能在一個文件中去定義共享的變量val,多個文件定義會報重復定義的錯誤

 

 

也可以自己在類里面封裝一個方法去獲取變量,在使用的時候直接調用這個方法就可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM