多个文件中的全局变量

我有两个源文件需要访问一个公共变量。做这个的最好方式是什么?例如:


source1.cpp:


int global;


int function();


int main()

{

    global=42;

    function();

    return 0;

}

source2.cpp:


int function()

{

    if(global==42)

        return 42;

    return 0;

}

全局变量的声明应该是静态的,外部的,还是应该在两个文件都包含的头文件中,等等?


莫回无
浏览 523回答 3
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;}

慕码人2483693

您添加一个“头文件”,该文件描述模块source1.cpp的接口:source1.h#ifndef SOURCE1_H_#define SOURCE1_H_extern int global;#endifsource2.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中公共可用的内容。
打开App,查看更多内容
随时随地看视频慕课网APP