标识符作用域、关键字及宏

本文探讨了编程中标识符的作用域、可见性规则以及变量的生存期,包括全局和局部作用域的区别,静态和动态变量的特性,以及extern、register和预处理宏的使用。
摘要由CSDN通过智能技术生成

标识符的作用域、可见性

作用域

全局作用域

全局变量(全局区)

全局变量定义时未初始化,以位模式清零,则值为0

作用域

可在整个作用域使用,不需要二次定义,但下面这种用法不推荐,一般使用参数传参

局部作用域

全局变量(栈区)

比如函数的形参。。

变量生存期

静态生存期

比如一个全局变量,从定义开始到程序结束才被销毁。

动态生存期

如局部变量从定义开始到局部作用域结束被销毁。

static:
修饰一个局部变量

如下图中i在static成为一个静态变量,初始值为0,生存期为静态。

输出11 12(初始化只进行一次)

修饰一个全局变量

static修饰一个全局变量或者函数,限制变量使用范围,表示此全局变量只在此文件有用。

可见性

1.标识符必须先定义再使用

2.同一作用域中不得出现同名标识符

3.在没有包含关系的不同作用域中定义的同名标识符互不影响

4.在两个或多个具有包含关系中声明的同名标识符,外层标识符在内层不可见

aotu:

定义变量时隐含,自动开辟空间与销毁

register:

建议编译器把变量放在寄存器中,提高执行效率。

寄存器不能寻址,取地址会报错。

extern

在头文件中声明加上extern。

预处理命令(文本替换)

宏定义

宏名通常大写,以便于和变量区分开

系统自带:
不带参

当前行数

当前文件名

带参

类似函数,但方法不同。

结果为20

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值