程序冲突及其解决

描述

对于两部分软件,如果它们不能在同一个程序里很容易地用在一起,那么我们就称这两部分软件是冲突的。可重用代码应该尽可能地避免这种冲突。程序库使用的名字可能会和其他程序库的名字发生冲突,这些冲突包括全局名称,宏名称和环境名称相互之间的冲突。常用的解决方法是命名约定和命名空间结构

命名约定

  1. 提高名称的唯一性,每个具有外部链接的全局名称都应该加上前缀,实际中,很常用的是加一个字母或者两个字母。或者可以加上程序库的名称,甚至开发这个程序库的公司名称(增强唯一性)。
  2. 私有保护,减少由于多继承造成的同名函数调用的多意性。
  3. 为了减少需要加上前缀的全局名称数量,程序库应该使用名字空间结构,不过程序员使用的话就需要加命名空间的结构或者使用using namespace xx(命名空间);
  4. 宏名称冲突也是比较常见,宏名称冲突并不是仅仅只是另外的宏名称冲突,其他函数命名也是会造成冲突。因此应尽可能地少定义公共宏(公共文件定义的宏);对那些不能去掉的公共宏,使用命名约定(加前缀)。
  5. 环境名称,主要是文件的名称冲突,将相同的名称冲突文件放在不同的目录,然后包含进来。
  6. 6.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值