C语言中的存储类型
2016-03-01 15:44
411 查看
存储类型定义程序中
auto
register
static
extern
声明为
只有文件中的全局变量才能被其他文件所
总结
变量/函数的范围(可见性)和生命周期。C语言中有四种类型的存储类型
auto
register
static
extern
auto
auto只能用在函数内,即
auto只能修饰局部变量,局部变量默认就是
auto。
register
register只能用于局部变量。
register用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着局部变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的
&运算符(因为它没有内存位置)。
声明为
register的局部变量在由内存调入到CPU寄存器后,则常驻在CPU的寄存器中,因此访问
register局部变量将在很大程度上提高效率,因为省去了变量由内存调入到寄存器过程中的好几个指令周期。
static
static修饰局部变量表示可以在函数调用之间保持局部变量的值。
static也可以应用于全局变量和函数,表示全局变量和函数的作用域限制在声明它的文件内。
extern
函数默认就是extern。
extern修饰变量表示使用的是外部的变量。
只有文件中的全局变量才能被其他文件所
extern。
总结
存储类型 | 作用域/说明 |
---|---|
auto 局部变量 | {} 局部变量默认就是auto |
register 局部变量 | {} |
static 局部变量 | 整个程序运行期 |
static 全局变量 | 当前文件 |
static 函数 | 当前文件 |
extern 变量 | |
extern 函数 | 函数默认就是extern |
相关文章推荐
- 【C++11新特性】 C++11智能指针之weak_ptr
- C++ primer 第五版 中文版 练习 10.33
- 0.2 简单搭建C语言环境
- Java调用C/C++编写的第三方dll动态链接库(zz)
- 字符串最后一个单词的长度 C语言版本
- utilities——比较与排序规则(C++)
- C语言 字符串处理技巧(sscanf、strstr等用法)
- C语言——位操作
- C语言发展简介
- 0.1欢迎来到C语言的世界(教程介绍)
- C++发展简介
- C++中的Vector的用法
- 图像验证码识别(八)——字符归一化
- C语言:华氏温度与摄氏温度对照表
- 图像验证码识别(七)——字符分割
- 将C语言编译成DLL并用C#进行调用以及关于从C#传输中文路径到C的DLL中打开文件的问题
- C++ 类中特殊成员变量(常量、静态、引用)的初始化方法
- 九度-简单题 题目1431:Sort
- C++中虚函数工作原理和(虚)继承类的内存占用大小计算
- hbase thrift C++ 简单测试