读书笔记--C陷阱与缺陷(四)

第四章

1. 连接器

      C语言的一个重要思想就是分别编译:若干个源程序可在不同的时候单独进行编译,恰当的时候整合到一起。

      连接器一般与C编译器分离,其输入是一组目标模块(编译后的模块)和库文件,输出是一个载入模块(执行文件)。

 

2. 命名冲突与static修饰符

      static修饰符可有效减少命名冲突!

      如: static int a;

      与

            int a;

      声明含义相同,但是前者限制a的作用域在一个源文件(.c)内,其他源文件是不可见的。但后者都是可见的会产生命名冲突。

      如果若干个函数需要共享一组外部对象,可将这些函数放到一个源文件内,把该共享对象在这个源文件以static修饰。

     

      函数冲突也是这种解决方式。

      如: static int g(int);

      即一个函数只被同一源文件的其他函数调用时,应该将该函数声明为static。

  

  第四章的干货感觉比较少,连接器的理解和static使用算是相对重要的;后面讲到的函数参数返回值,检查全局外部类型,

使用良好的头文件声明函数和全局变量都可以解决。先记录这么多吧,开始第五章~~

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值