社区
C语言
帖子详情
请问一下全局变量可以定义在被多个.c文件包含着的头文件中合法马?
yangw150
2006-03-15 03:10:58
请问一下全局变量可以定义在被多个.c文件包含着的头文件中合法马?
...全文
202
6
打赏
收藏
请问一下全局变量可以定义在被多个.c文件包含着的头文件中合法马?
请问一下全局变量可以定义在被多个.c文件包含着的头文件中合法马?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ox_thedarkness
2006-03-15
打赏
举报
回复
我的说法是,.h文件(能被多个源文件包含的文件)中只能定义内部连接的全局变量。
如果是外部连接的变量,只应该在.h中声明而不是定义。
extern int g_x; // 合法,声明外部连接的变量,但不定义
class A{
static int i; // 合法,声明外部连接的变量,但不定义
};
static int s_x; // 合法,声明和定义内部连接的全局变量。
// 这样每一个包含该 .h 的c/cpp文件都会有一个不同的内部全局变量
下面是不该放在.h,而应该放在某个 c/cpp 中的东西:
int g_x; // 声明+定义,而且是外部连接的全局变量。放在.h中将引起重复定义
int A::i; // 声明+定义,而且是外部连接的全局变量。放在.h中将引起重复定义
//!static int A::i; // 至于这个,则是非法C/C++代码。
yangw150
2006-03-15
打赏
举报
回复
全局变量包括静态的和非静态的,三楼的意思是说,只要是静态的都合法,非静态的的就不合法了?
iamcaicainiao
2006-03-15
打赏
举报
回复
上面的代码可以通过extern引用。
ox_thedarkness
2006-03-15
打赏
举报
回复
只要是 static 连接的都合法 —— 这样每个文件都有一份自己的全局变量。
下面的代码若是写在全局区,都是extern连接的,不合法。
int x;
class A{
static int i;
};
int A::i;
du51
2006-03-15
打赏
举报
回复
全局变量一般都这样用的.
iamcaicainiao
2006-03-15
打赏
举报
回复
合法
529-[springboot]某炼油厂盲板管理系统.zip
java+vue+springboot源代码+配套文档+教程
170-python-网络课程在线学习平台.zip
java+vue+springboot 源代码+配套文档+教程
RunnerGo MySQL安装与配置详细指南
RunnerGo MySQL安装与配置指南 RunnerGo作为开源数据库运维工具,简化了MySQL的安装与配置流程。本指南详细讲解从环境准备到参数优化的全过程,提供自动化脚本与配置模板,帮助用户快速部署高性能MySQL实例。适用于开发者与运维人员,降低入门门槛,提升管理效率。
526-[springboot]基于微信小程序的校园食堂订餐服务系统.zip
java+vue+springboot源代码+配套文档+教程
《国科大李保滨矩阵分析与应用考试题目汇总2019-2020回忆版》
资源下载链接为: https://pan.quark.cn/s/12ede2b84e97 本资源精心整理了矩阵分析与应用考试试卷,涵盖CSDN下载的各类试卷以及个人整合的优质内容,堪称全网最全。其
中
还包含2019-2020年最新回忆版试卷,极具参考价值。分享知识,助力他人,也能收获自己的成长与提升,希望大家多多支持!
C语言
70,016
社区成员
243,265
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章