标签:style 使用 strong 文件 数据 代码 管理 size
注:此文为《C Primer Plus》一书中的部分总结,写下来方便以后参考。
用于存储程序数据的内存可用存储时期、作用域和链接来表征。
存储时期可以使静态的、自动的或者分配的。①如果是静态的,内存在程序开始执行时被分配,并行程序运行时一直存在。②如果是自动的,变量所用内存在程序执行到该变量定义所在代码块时开始分配,在退出代码块时释放。③如果是分配的内存,内存通过调用malloc()(或其他相关函数)分配,通过调用函数free()释放。
作用域决定哪一部分程序可以访问某个数据。在所有函数之外定义的变量具有文件作用域,并对该变量声明之后定义的全部函数可见。在代码块内定义或者作为函数参量定义的变量具有代码块作用域,并只在该代码块及其子代码块中可见。
链接描述了程序的某个单元定义的变量可被链接到其他哪些地方。具有代码块作用域的变量作为局部变量,具有空链接。具有文件作用域的变量可有内部链接或者外部链接。内部链接意味着变量只在包含变量定义的文件内部使用。外部链接意味着变量也可在其他文件中使用。
下面是C的5种存储类:
分配内存是使用函数malloc()(或相关的函数)提供的内存,该函数返回一个指向具有所请求字节数的内存块的指针。将这一内存块的地址作为参数来调用函数free(),可以使该内存块重新可用。
类型限定词说明符有const、volatile和restrict。类型说明符const将数据限定为不变的。在使用指针时,const可以表明指针本身不变或指针指向的数据不变,这取决于const在声明中的位置。说明符volatile表明数据除了可被程序修改外还可通过其他方式修改,其目的是警告编译器在优化时不要做出相反的假设。说明符restrict也是为了优化而设置。由restrict限定的指针被认为是提供了对其所指向的数据块的惟一访问途径。
C语言--存储类、链接和内存管理,布布扣,bubuko.com
标签:style 使用 strong 文件 数据 代码 管理 size
原文地址:http://www.cnblogs.com/11hwu2/p/3879526.html