您的位置:首页 > 其它

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!";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储 c 编译器
相关文章推荐