Monday, April 23, 2018

c++ - Global Variable within Multiple Files



I have two source files that need to access a common variable. What is the best way to do this? e.g.:



source1.cpp:



int global;

int function();


int main()
{
global=42;
function();
return 0;
}


source2.cpp:




int function()
{
if(global==42)
return 42;
return 0;
}


Should the declaration of the variable global be static, extern, or should it be in a header file included by both files, etc?



Answer



The global variable should be declared extern in a header file included by both source files, and then defined in only one of those source files:




common.h




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;
}


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...