【c基础】全局变量-局部变量 静态变量static-自动变量auto 外部变量extern-内部变量static 常量const-宏定义#difine
来源:互联网 发布:canvas js库 编辑:程序博客网 时间:2024/06/05 01:12
标题已经给出了分类。不同分类下的定义互不干扰,尤其注意静态和全局,计算机等级考试和初级程序猿面试常见问题。
(1)全局变量<—>局部变量
这个组合是规定变量的作用域
有局部变量的地方,全局变量被屏蔽。局部变量的定义函数之外,全局变量生效。
(2)静态变量static<—>自动变量auto
这个组合是规定变量的生命周期
默认auto,auto关键字可省略。
静态变量在main之前出生,一直被调用,直到main结束死亡。注意,静态不静态不影响的作用域,作用域由全局不全局决定。
auto是默认类型,不必写出。初始化时出生,初始化它的函数return时死亡。
(3)外部变量extern<—>内部变量static
这个组合是规定变量的链接属性(存在的.c文件)
默认extern。
外部变量extern,声明为extern之后,变量不管在哪定义的,自动成为全局变量,而且在本文件和同工程下的其他文件中皆能访问,即链接属性变为external
内部变量static,全局变量被声明成static,只能在本文件中访问,即链接属性变为internal
(4)常量const<—>宏定义#difine
1、预编译指令#difine只是对值进行简单的替换,不能进行类型检查。
2、可以保护被修饰的东西,防止意外修改,增强程序的健壮性。
编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
阅读全文
0 0
- 【c基础】全局变量-局部变量 静态变量static-自动变量auto 外部变量extern-内部变量static 常量const-宏定义#difine
- C语言 const static 静态变量 全局变量 局部变量
- 全局变量、局部变量、const、static、extern
- 【C语言】局部变量、全局变量,局部静态变量,全局静态变量,extern,static的区别
- static & extern 全局变量 局部变量...
- 全局变量,静态变量,extern,static
- C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)
- C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)
- static 变量 作用域 全局变量 局部变量 外部变量 常量 volatile变量
- 静变量static、全局变量extern、局部变量、实例变量
- iOS 静变量static、全局变量extern、局部变量、实例变量
- static变量,全局变量,局部变量
- 局部变量,外部变量,static局部变量,static外部变量
- C语言:全局变量、静态变量static、外部变量extern的区别
- 局部变量和全局变量,extern和static
- static(静态变量)、extern(全局变量)、局部变量、实例变量。。。
- 静态变量 static 全局变量
- static--静态全局变量&静态局部变量
- Java
- ubuntu系统默认内核不支持Intel Dual Band Wireless-AC 3168无线网卡+ubuntu升级内核:遇到的问题及解决办法
- jQueryEasyui:导出Word
- git 拉取远程指定分支 pull本地不存在的分支
- Linq之Lambda表达式初步认识
- 【c基础】全局变量-局部变量 静态变量static-自动变量auto 外部变量extern-内部变量static 常量const-宏定义#difine
- 代码设置字体颜色
- 9,适配器模式-你多大鞋,我多大脚
- Android自己画图
- Linq之Lambda进阶
- TensorFlow可视化结果
- vue开发环境搭建
- Kotlin类和对象 (十)--- 枚举类
- insserv: Starting xx depends on plymouth and therefore on system facility `$all'