C++中如何訪問全局變量和全局函數


全局變量和全局函數是相對局部變量和局部函數而言的,不在{}或者for, if 等范圍內的都是全局變量或者全局函數,最簡單的是在同一個文件中去聲明。

例如在mian.cpp中

#include <iostream> 

int gResult;

int gAdd(int a, int b) {

  return a + b;

}

int main(int argc, const char * argv[]) {

  gResult = aAdd(2, 3);

}

 這樣的話main函數上面的都是都是全局變量和全局函數;在整個文件中都可以調用的到,也就是說全局變量是對其所在的整個文件而言的。

但是問題來了,我們需要使用其他文件中全局變量怎么辦,或者說我們需要整個項目中只有唯一的一個全局的變量。

聲明的時候是一樣的,只是在調用的時候需要用extern關鍵字在用的文件中重新聲明一下就可以了。

例如:

我們在base.cpp中聲明一個全局的變量和全局函數

#include <iostream>

#include "base.h"

int gResult;

int gAdd(int a, int b){

  return a + b;

}

void print(){

std::cout<<gRedult<<std::endl;

}

現在我們需要在mian.cpp中調用全局變量和全局函數;

int mian(int argc, const char * argv[]) {

//重新聲明base.cpp中的全局變量和全局函數;

  extern int gResult;

  extern int gAdd(int a, int b);

  extern void print();

 

  gResult =  gAdd(2, 3);

//可以看到兩次打印的結果都是5,因為他們操作的是同一個全局變量;

  std::cout<<gResult<<std::endl;

  print();  

}

 


免責聲明!

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



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