c语言 存储类型 |
您所在的位置:网站首页 › 形参的类型有哪些 › c语言 存储类型 |
c中的每一个变量和函数都有两个属性:类型(type)和存储类型(storage class).存储类型分别是auto(自动),extern(外部),register(寄存器),static(静态) 1.auto 在函数体中定义的变量缺省是auto. 当进入代码块(block)时,系统为自动变量分配内存.在块内,这些变量被定义,并被认为他们是局部于本块的.当退出块时,系统释放分配给自动变量的内存,因此,变量值就丢失了.重新进入块,系统会为自动变量再次分配内存,原先的值已经没有了. 2.extern 在函数的外部声明变量,就为变量永久的分配存储,它的存储类型是extern. 定义在函数外部的变量的存储类型都是extern,既不使用关键字extern. 使用extern关键字是告诉,编译器”在本文件或其他文件中寻找它”.既a文件中int a =1在b文件中则可以使用extern int a;来调用它. 外部变量从不会消失,因为外部变量在整个程序执行期间都是存在的. 两种方式向函数传递信息:1.使用外部变量.2.使用参数.当函数从其内部而不是通过参数表改变全局变量时,会产生副作用.这样的构造容易引发错误.正确的做法是通过参数和返回机制影响全局变量. 3.register register高速编译器应该把有关的变量存储在高速的内存寄存器中.使用存储于类型register是要试图改善执行速度.当关系速度时,可选择一些最经常访问的变量,并把他们的存储类型声明为register. register i;等价于register int i;,register默认是int类型. 4.static 1.允许局部变量保存它的原有值,以便再进入块时使用. void f(void) { static int cnt = 0; }当第一次调用函数时,把变量cnt初始化为0,在退出函数时,cnt的值被保存在内存中.当再次调用函数时,就不用再对cnt进行初始化,cnt扔保留着上次调用函数时的值. 2.在函数外部声明static,则次变量是本文件可访问(私有privacy),外部文件不能访问. |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |