Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > 明白链接的奥秘
【标  题】:明白链接的奥秘
【关键字】:
【来  源】:http://www.cublog.cn/u/17192/showart.php?id=176002

明白链接的奥秘

Your Ad Here 平时我们都只用一条gcc指令就完成了程序的预编译,编译,汇编及链接等过程,很多的开发环境连手动调用gcc都省去了,这常使我们搞不清里面的奥秘。 如果是手动调用gcc,那么对各个模块的书写顺序是有要求的。比如源代码a调用了b里的一个函数,那么b就必须出现在a的后面(gcc -o example a.c b.c),否则会报错说找不到函数定义。所以库函数都要放在最后。若是库a.lib依赖b.lib,也和前面用法一样,此时最好的做法是把两个库合并成一个。这就是我们强调的强内聚,松耦合吧。 对于c的定义分成强类型和弱类型——针对全局变量而言,因为只有全局变量才会被别的模块引用。因此尽量用static来定义模块内的变量,避免造成名字空间的污染。已经附初值的全局变量是强类型的,未附初值的变量是弱类型的。gcc链接按照以下规则来引用外部变量。 *若有两个同名的强类型变量,则报错。 *若两个同名变量,一个是强类型,一个是弱类型,则引用强类型 *若是两个弱类型,则任选一个以上内容都是从《深入理解计算机系统》这本书得来的。大家可以找来看,这本书绝对超值。这算是我个人的读书笔记吧。由于把代码写出来太麻烦了,请见谅。
mysql自动备份脚本:【上一篇】
将金额转为大写的函数:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 利用php来自动调用不同服务器上的flash
  • apache+mysql+PHP for FB 手记
  • 终于可以在emacs里面用五笔输入中文了
  • appfuse配置文件解读
  • QoS,ToS和DiffServ
  • 阻击 瑞星 和 雅虎助手 的 SVOHOST.exe(第2版)
  • java连接操作Oracle出现的问题及解决方法
  • Debug mode 引导AIX
  • DataTable中的排序
  • 在Linux下使用ADSL
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.