免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1061 | 回复: 0
打印 上一主题 下一主题

浅谈#ifdef在软件开发中的妙用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-24 22:59 |只看该作者 |倒序浏览
   笔者从事UNIX环境下某应用软件的开发与维护工作,用户分布于全国各地,各用户需要的基本功能都是一样的,但在某些功能上要随着需求变化,不断加以升级,要想实现全国各地用户的升级工作是很困难的,而我们则只是利用E-mail发送补丁程序给用户,这些补丁程序都是在一套软件的基础上不断地修改与扩充而编写的,并由不同的标志文件转入到不同的模块,虽然程序体积在不断扩大,但丝毫不影响老用户的功能,这主要是得益于C程序的#ifdef/#else/#endif的作用。文/李斌兵
我们主要使用以下几种方法,假设我们已在程序首部定义#ifdef DEBUG与#ifdef TEST:
  1.利用#ifdef/#endif将某程序功能模块包括进去,以向某用户提供该功能。
  在程序首部定义#ifdef HNLD:
  #ifdef HNLD
  #include"n166_hn.c"
  #endif
  如果不许向别的用户提供该功能,则在编译之前将首部的HNLD加一下划线即可。
  2.在每一个子程序前加上标记,以便追踪程序的运行。
  #ifdef DEBUG
  printf(" Now is in hunan !");
  #endif
  3.避开硬件的限制。有时一些具体应用环境的硬件不一样,但限于条件,本地缺乏这种设备,于是绕过硬件,直接写出预期结果。具体做法是:
  #ifndef TEST
  i=dial();
  //程序调试运行时绕过此语句
  #else
  i=0;
  #endif
  调试通过后,再屏蔽TEST的定义并重新编译,即可发给用户使用了。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/9765/showart_53308.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP