亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多個文件中的全局變量

多個文件中的全局變量

C++
莫回無 2019-10-26 12:24:09
我有兩個源文件需要訪問一個公共變量。做這個的最好方式是什么?例如:source1.cpp:int global;int function();int main(){    global=42;    function();    return 0;}source2.cpp:int function(){    if(global==42)        return 42;    return 0;}全局變量的聲明應該是靜態的,外部的,還是應該在兩個文件都包含的頭文件中,等等?
查看完整描述

3 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

全局變量應extern在兩個源文件都包含的頭文件中聲明,然后僅在這些源文件之一中定義:


普通


extern int global;

source1.cpp


#include "common.h"


int global;


int function(); 


int main()

{

    global=42;

    function();

    return 0;

}

source2.cpp


#include "common.h"


int function()

{

    if(global==42)

        return 42;

    return 0;

}


查看完整回答
反對 回復 2019-10-26
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

您添加一個“頭文件”,該文件描述模塊source1.cpp的接口:


source1.h


#ifndef SOURCE1_H_

#define SOURCE1_H_


extern int global;


#endif

source2.h


#ifndef SOURCE2_H_

#define SOURCE2_H_


int function();


#endif

并在每個使用此變量的文件中添加#include語句,并在(重要)變量中定義該變量。


source1.cpp


#include "source1.h"

#include "source2.h"


int global;     


int main()     

{     

    global=42;     

    function();     

    return 0;     

}

source2.cpp


#include "source1.h"

#include "source2.h"


int function()            

{            

    if(global==42)            

        return 42;            

    return 0;            

}

盡管沒有必要,但我建議為該文件使用名稱source1.h,以表明它描述了模塊source1.cpp的公共接口。以相同的方式,source2.h描述了source2.cpp中公共可用的內容。


查看完整回答
反對 回復 2019-10-26
  • 3 回答
  • 0 關注
  • 560 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號