1.5 C/C++ 变量

一、全局变量可不可以定义在可被多个 .C 文件包含的头文件中?为什么?

不可以,在连接阶段会产生重复定义问题。

可以在头文件对全局变量声明,然后在其中一个.c文件对其定义。

//header.h
extern int global_variable;

//file1.c
#include "header.h" // 之所以也要包含 .h 是为了告诉编译器将 global_variable 导出为全局符号,另外能进行类型匹配检查
int global_variable = 10;  // 定义全局变量

//file2.c
#include "header.h"
#include <stdio.h>
void print_global_variable() {
    printf("Global variable value: %d\n", global_variable);
}

二、局部变量能否和全局变量重名?

能,局部变量会屏蔽全局变量。

三、 一个变量既可以是 const 还可以是 vol

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++/嵌入式开发 秋招面经 文章被收录于专栏

一名985硕,在25年秋招中斩获多个C++/嵌入式开发Offer。本专栏将分享我的面经,涵盖C/C++、操作系统、计算机网络、ARM体系与架构、Linux应用/驱动开发、Qt、通信协议及开发工具链等核心内容。

全部评论
初始化为0的全局变量在BSS段还真没注意过
点赞 回复 分享
发布于 04-03 00:25 河北
static初始化时机
点赞 回复 分享
发布于 04-03 00:14 河北
欢迎订阅专栏《C++/嵌入式开发 秋招面经》 :https://www.nowcoder.com/creation/manager/columnDetail/MKaoll
点赞 回复 分享
发布于 03-30 17:05 河北

相关推荐

评论
5
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务