C++的全局变量,静态全局变量,常全局变量定义与声明

本文介绍了C++中全局变量、静态全局变量和常全局变量的声明与定义的区别,强调了链接性的影响。外部全局变量具有外部连接性,静态全局变量和常全局变量具有内部连接性。头文件中一般只做声明,避免重复定义问题。静态和常全局变量可以定义在头文件中,因其内部连接性,但多个文件包含可能导致冲突。正确使用extern关键字可以解决不同文件间的变量访问问题。
摘要由CSDN通过智能技术生成

头文件中变量如果没有初始化就是声明;初始化了就是定义。在C++语言中,变量有且只能有一次定义,但是可以声明多次,使用变量前必须定义或声明。

再说到这些变量的声明与定义前,要知道这些变量的链接性:

外部全局变量                  外部连接性   可以被extern

静态全局变量(static)  内部连接性   不能被extern

常全局变量(const)      内部连接性  在之前加上extern就变成了外部连接性,就可以被其他的文件extern了

声明:(可以放在头文件)没有开辟内存的定义,类型定义,比如类的定义,结构体的定义,它是定义一个数据类型而已;

定义:(不可放在头文件)开辟了内存的定义,数据定义,比如类对象定义,变量定义。

一般来说:

不分配内存的,放在头文件
分配内存的放在cpp文件,防止重复定义,当然也要看变量的连接性,内部连接性的可以放在头文件定义。

  变量、函数、类,在使用之前都必须声明,包含头文件,如果a.h包含了b.h,在a.h里面就对b.h里面的声明重新声明了,这也是不能在头文件里面定义变量与函数的原因(防止重复定义),当然内部链接性的变量和内联函数除外。

       C++是不允许在头文件里定义一个外部全局变量(声明可以,比如在源文件定义,在头文件extern声明,像int a;这样不算声明,是

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值