C语言的存储类和链接
2014-05-02 22:27
393 查看
http://hi.baidu.com/isswangqing/item/6fca148a55a9fc53e63d19a1
作用域决定了哪一部分的程序可以访问某个数据。
链接描述了程序的某个单元定义的变量可以被链接到其他哪些地方。内部链接意味着变量只可在包含变量定义的文件中使用,外部链接意味着变量也可以在其他文件中使用。
下面是C语言的5种存储类:
自动——在一个代码块内(或在一个函数头部作为参量)声明的变量,无论有没有存储类修饰符auton,都属于自动存储类。该类具有自动存储时期、代码块的作用域和空链接(no linkage),如未初始化,它的值是不确定的(java要求局部变量必须初始化)
寄存器—— 在一个代码块内(或在一个函数头部作为参量)使用修饰符register声明的变量属于寄存器存储类。该类与自动存储类相似,具有自动存储时期、代码块作用域和空连接,声明为register仅仅是一个请求,而非命令,因此变量仍然可能是普通的自动变量,但是仍然无法获取地址。。如果没有被初始化,它的值也是未定的。
静态、空链接——在一个代码块内使用存储类修饰符static声明的局部变量属于静态空连接存储类。该类具有静态存储时期、代码块作用域和空链接,仅在编译时初始化一次。如未明确初始化,它的字节将被设定为0.
静态、外部链接——在所有函数外部定义、未使用static修饰的变量属于静态、外部链接存储类。改类具有静态存储时期、文件作用域和外部链接,仅在编译时初始化一次。如未明确初始化,它的字节也被设定为0.
静态、内部链接——与静态、外部链接存储类不同的是,它使用static声明,也定义在所有函数外部,但是具有内部链接(仅能被与它在同一个文件的函数使用),仅在编译时初始化一次。如未明确初始化,它的字节也被设定为0.
作用域决定了哪一部分的程序可以访问某个数据。
链接描述了程序的某个单元定义的变量可以被链接到其他哪些地方。内部链接意味着变量只可在包含变量定义的文件中使用,外部链接意味着变量也可以在其他文件中使用。
下面是C语言的5种存储类:
自动——在一个代码块内(或在一个函数头部作为参量)声明的变量,无论有没有存储类修饰符auton,都属于自动存储类。该类具有自动存储时期、代码块的作用域和空链接(no linkage),如未初始化,它的值是不确定的(java要求局部变量必须初始化)
寄存器—— 在一个代码块内(或在一个函数头部作为参量)使用修饰符register声明的变量属于寄存器存储类。该类与自动存储类相似,具有自动存储时期、代码块作用域和空连接,声明为register仅仅是一个请求,而非命令,因此变量仍然可能是普通的自动变量,但是仍然无法获取地址。。如果没有被初始化,它的值也是未定的。
静态、空链接——在一个代码块内使用存储类修饰符static声明的局部变量属于静态空连接存储类。该类具有静态存储时期、代码块作用域和空链接,仅在编译时初始化一次。如未明确初始化,它的字节将被设定为0.
静态、外部链接——在所有函数外部定义、未使用static修饰的变量属于静态、外部链接存储类。改类具有静态存储时期、文件作用域和外部链接,仅在编译时初始化一次。如未明确初始化,它的字节也被设定为0.
静态、内部链接——与静态、外部链接存储类不同的是,它使用static声明,也定义在所有函数外部,但是具有内部链接(仅能被与它在同一个文件的函数使用),仅在编译时初始化一次。如未明确初始化,它的字节也被设定为0.
相关文章推荐
- C语言学习笔记1——存储类、链接和内存管理
- C语言存储类、链接(十八)--extern、static、register修饰符
- C语言复习篇之存储类、链接和内存管理
- C语言再学习 -- 存储类、链接
- c语言的存储类&作用域&生命周期&链接属性
- 【C语言学习】《C Primer Plus》第12章 存储类、链接和内存管理
- C语言存储类、链接和内存管理总结
- C语言之谈谈存储类、链接。
- 深入c语言_链接属性
- C语言的编译链接过程
- 存储类(作用域、链接、存储时期)
- c语言无声明自动链接的问题
- C语言的5种存储类以及关键字volatile、restrict
- C语言提高之——C语言中的作用域、链接属性和存储类型
- C语言的5种存储类以及关键字volatile、restrict
- 散列-分离链接法(数据结构与算法分析-C语言描述)
- C_2:c语言的编译链接
- C语言的编译链接过程的介绍
- C语言的编译链接过程的介绍
- C语言的编译链接过程的介绍