存储类 (作用域、链接和存储时期)

作用域 :程序中可以访问一个标识符 的一个或多个区域。一个C变量的作用域可以是代码块作用域函数原型作用域 或者文件作用域

    一个代码块是包含在开始花括号和相应的结束花括号之内的一段代码。在代码块中定义的变量具有代码块作用域(block scope) ,从该变量被定义的地方到包含该定义的代码块的末尾该变量均可见。另外,函数的形式参量尽管在函数的开始花括号前进行定义,同样也具有代码块作用域,隶属于包含函数体的代码块。所以,局部变量和函数的形参都具有代码块作用域。

    函数原型作用域从变量定义处一直到函数声明的结尾,也就是说只在这一句话内起作用

    一个在所有函数之外定义的变量具有文件作用域(file scope ).文件作用域变量也称为全局变量

链接 :一个C变量具有下列链接之一:外部链接,内部链接或空链接

    具有代码块作用域或函数原型作用域的变量有空链接。

    具有文件作用域的变量可能有内部或者外部链接。一个具有外部链接的变量可以在一个多文件程序的任何地方使用,一个具有内部链接的变量可以在一个文件的任何地方使用。通过看是否使用了static关键字来判断是内部还是外部链接。 

int giants = 5;      //文件作用域,外部链接

static int dodgers = 3; // 文件作用域,内部链接

存储时期 :一个C变量有以下两种存储时期之一:静态存储时期和自动存储时期。静态存储时期,表示其在程序执行期间一直存在。具有文件作用域的变量都具有静态存储时期。

     注意对于文件作用域的变量,关键字static表明链接类型,而非存储时期。

     具有代码作用域的变量一般情况下具有自动存储时期。

 

c使用作用域、链接和存储时期来定义5种存储类:自动、寄存器、具有代码块作用域的静态、具有外部链接的静态,以及具有内部链接的静态。

.........................详细的内容因为误操作没了。。。泣血啊。。。等以后补上。。

 5. 具有内部链接的静态变量,具有静态存储时期、文件作用域和内部链接。

static int svil = 1;    //具有内部链接的静态变量

 只能被与它同一个文件中的函数使用。


多文件:在一个文件的所有函数外面定义的变量具有全局作用域,静态存储空间。在别的文件中想用这个变量需要用extern来声明。要是定义的时候用static来声明就只能在本文件中使用这个变量了。

对于函数:似乎在一个文件中的变量定义的函数,在别的文件可以直接使用(也许得先定义?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值