MST
星途 面试题库

面试题:C++中如何在不同模块间合理引用全局变量

假设有一个项目,包含多个源文件(模块),在其中一个源文件中定义了一个全局变量`int globalVar = 10;`,现在需要在另一个源文件中引用这个全局变量并进行修改操作。请描述实现步骤,并说明为什么要这样做,同时写出关键代码片段。
29.9万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. 实现步骤
    • 在需要引用全局变量的源文件中,使用extern关键字声明该全局变量。这是因为extern关键字用于告知编译器该变量在其他地方已经定义,此处只是声明,让编译器知道有这么一个变量可以使用。
    • 声明后就可以像使用本地变量一样对其进行修改操作。
  2. 关键代码片段
    • 假设定义globalVar的源文件为source1.c
// source1.c
int globalVar = 10;
  • 在另一个源文件source2.c中引用并修改globalVar
// source2.c
#include <stdio.h>

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

int main() {
    // 修改全局变量
    globalVar = 20; 
    printf("Modified globalVar: %d\n", globalVar); 
    return 0;
}
  1. 这样做的原因
    • 在C语言中,全局变量的作用域默认是从定义处开始到文件末尾。如果在其他源文件中要使用这个全局变量,必须先声明,让编译器知道该变量的存在和类型,extern声明起到这个作用。这样可以实现不同源文件之间对同一个全局变量的共享和操作,方便在整个项目范围内管理和使用全局数据。