第12章作用域、存储类与链接要点记录

代码块作用域只局限于该代码块,但可以人为规定是自动存储或者静态存储。

文件作用域的变量从它定义处到文件结尾都是可访问的,内部链接就是仅该文件本身可用;外部链接不光自己可用,其他文件都可用。

 

静态存储就是变量在程序执行期间一直存在,至于能不能访问那是另一回事。

换句话说,作用域和链接属性决定了变量的访问权限,自动/静态存储决定了变量的值要不要保留。

剩下的事情无非就是这3种属性的组合。

作用域和链接

static关键字感觉设计的不好,用在代码块作用域,弄得自动/静态存储的事情;用在文件作用域,弄得内部/外部链接的事情。

违背了计算机科学的基本原则——“产生二义性”。

还有auto,register,extern既没有什么作用,还容易让人糊涂,怪不得c的创始人自己吐槽——“尽管c看起来丑陋”


把变量都设成外部变量,就不用为了使用参数和指针在函数之间传递信息而费劲了,乍看起来很有吸引力。

然而多年来,无数程序员的经验给出了无可置疑的证据,随意使用外部变量带来的危险性远比表面吸引力大得多。

———————————————————————————————————————————————

简单介绍了一下随机数,seed种子与rand。

动态内存分配malloc与free。

值得注意的是void *指针,尽管它能代替任何其他类型的指针,初学者会觉得:“太好了,不用指明每一种具体类型;全都使用void *一起搞定。" 但是它不是万能型,因为没有类型检查,非常危险。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值