C变量及函数存储类型
2012-05-11 22:37
211 查看
一、变量声明格式:
存储类型 类型修饰符 数据类型 变量名;
二、函数声明格式:
存储类型 返回类型 函数名 (参数列表){}
存储类型有:
1.auto:
只能标识 [ 变量 ] 的存储类型。标识该局部变量存储在正在运行的进程 [栈区域]。注意,局部变量如果没有初始化而直接参与计算,系统将会为其分配一个随机值
2.extern:
既可标识变量,也可以标识函数。
对于变量,extern用来声明在当前文件中引用(使用),而在当前项目中的其他文件中定义的全局变量。只分配一次内存空间。全局变量如果没有初始化,在编译时将自动为其赋初始值为0.
有两种方式使用它:
(1):全局变量在头文件中定义,则需要使用该变量的文件中包含相应的头文件即可。然后在其源文件中直接使用该全局变量。
(2):如果该全局变量在其他文件中定义(*.c)则在当前文件(引用其全局变量的源文件)中使用extern声明。
对于函数,extern仅仅标识函数的作用域,默认的存储方式即为extern。也就是说,在一个项目中,如果没有声明函数的存储类型,该函数可以被当前项目的所有文件引用。
3.register:
只能用于标识变量,而且变量的类型只能是整型和字符型。此关键字主要用于标识长期被使用的变量。将变量声明为register则会建议(注意,只是建议)编译器将其变量常驻在CPU的寄存器中。未初始化的寄存器变量将被随机分配一个值。
4.static:
意为静态的。可标识变量,也可以标识函数。被声明的静态类型的变量(无论是全局变量还是局部变量)存储在数据区,其生命周期为整个程序运行期。如果是静态局部变量,其作用域为自身所处的一对{}内;如果是静态全局变量,其作用域为当前文件。静态变量如果没有初始化,将自动初始化为0.静态变量只会初始化一次。
5.字符串常量:
它存储在数据区,其生存周期为整个程序运行期。char * a = "hello world!";
存储类型 类型修饰符 数据类型 变量名;
二、函数声明格式:
存储类型 返回类型 函数名 (参数列表){}
存储类型有:
1.auto:
只能标识 [ 变量 ] 的存储类型。标识该局部变量存储在正在运行的进程 [栈区域]。注意,局部变量如果没有初始化而直接参与计算,系统将会为其分配一个随机值
2.extern:
既可标识变量,也可以标识函数。
对于变量,extern用来声明在当前文件中引用(使用),而在当前项目中的其他文件中定义的全局变量。只分配一次内存空间。全局变量如果没有初始化,在编译时将自动为其赋初始值为0.
有两种方式使用它:
(1):全局变量在头文件中定义,则需要使用该变量的文件中包含相应的头文件即可。然后在其源文件中直接使用该全局变量。
(2):如果该全局变量在其他文件中定义(*.c)则在当前文件(引用其全局变量的源文件)中使用extern声明。
对于函数,extern仅仅标识函数的作用域,默认的存储方式即为extern。也就是说,在一个项目中,如果没有声明函数的存储类型,该函数可以被当前项目的所有文件引用。
3.register:
只能用于标识变量,而且变量的类型只能是整型和字符型。此关键字主要用于标识长期被使用的变量。将变量声明为register则会建议(注意,只是建议)编译器将其变量常驻在CPU的寄存器中。未初始化的寄存器变量将被随机分配一个值。
4.static:
意为静态的。可标识变量,也可以标识函数。被声明的静态类型的变量(无论是全局变量还是局部变量)存储在数据区,其生命周期为整个程序运行期。如果是静态局部变量,其作用域为自身所处的一对{}内;如果是静态全局变量,其作用域为当前文件。静态变量如果没有初始化,将自动初始化为0.静态变量只会初始化一次。
5.字符串常量:
它存储在数据区,其生存周期为整个程序运行期。char * a = "hello world!";
相关文章推荐
- 1119数组 二维数组 字符串处理函数 值传递和变量存储类型知识点
- 条件编译、Unix中C函数声明、变量存储类型、程序与进程
- 浅谈c语言的变量与函数存储类型
- 不同存储类型的变量的声明、内部函数、外部函数
- C变量和函数的存储类型
- 变量类型、存储方式、函数声明调用——记录
- C变量及函数存储类型
- 如果从函数中返回局部变量的地址,引用或者指针的形式,则变量类型必须是静态的或者常量,即不在栈中存储
- 作用域、链接属性、存储类型示例——文件之间变量、函数的关系
- C变量和函数的存储类型
- 变量、常量和函数等存储类型
- 数组、函数、变量/作用域/存储区/生命周期/程序优化、exit标准函数、递归函数
- JavaScript总体的介绍【JavaScript介绍、定义函数方式、对象类型、变量类型】
- const类型的成员函数内部如何改变成员变量
- PHP - Manual手册 - Function Reference函数参考 - Variable and Type Related Extensions变量和类型相关扩展 - Variable handling变量操作 - Variable handl
- 【C语言天天练(零)】变量的存储类型
- C语言变量存储类型auto,static,extern,static extern,register
- C/C++学习之C提高----C数组的定义、类型、定义数组指针变量、多维数组的本质、多维数组做函数参数、将两个数组中的字符串copy到第三个数组
- 【精】C语言之变量存储类型
- 不同类型的变量在内存中存储的详细情况