C++中extern关键词,全局变量

149 阅读1分钟

在C++中,extern关键字用于声明一个在其他文件中定义的全局变量。以《辛普森一家》为背景,假设我们有一个全局变量donutCount来追踪霍默吃掉的甜甜圈数量,它在一个文件中定义如下:

// globals.h
#ifndef GLOBALS_H
#define GLOBALS_H

extern int donutCount;  // 声明全局变量

#endif

在另一个文件中,我们定义这个变量并初始化:

// globals.cpp
#include "globals.h"

int donutCount = 0;  // 定义并初始化全局变量

现在,任何包含globals.h的文件都可以访问donutCount变量,并更新霍默吃掉的甜甜圈数量:

// main.cpp
#include "globals.h"
#include <iostream>

int main() {
    donutCount = 5;  // 更新全局变量
    std::cout << "Homer has eaten " << donutCount << " donuts." << std::endl;
    return 0;
}

这样,我们就可以在整个程序中共享和更新donutCount变量,而不会引起重定义的错误。这就是extern关键字在C++中管理全局变量的一个例子。🍩