#ifdef的用法
来源:互联网 发布:淘宝服务市场 第三方 编辑:程序博客网 时间:2024/04/30 10:06
#ifdef的用法
灵活使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。
代码举例:新建define.cpp文件
#include "iostream.h"
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
运行结果为:Press any key to continue
改写代码如下:
#include "iostream.h"
#define DEBUG
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
运行结果为:Beginning execution of main()
Press any key to continue
更一般的情况是,#define语句是包含在一个特定的头文件中。
比如,新建头文件head.h,在文件中加入代码:
#ifndef DEBUG
#define DEBUG
#endif
而在define.cpp源文件中,代码修改如下:
#include "iostream.h"
#include "head.h"
int main(){
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
运行结果如下:Beginning execution of main()
Press any key to continue
结论:通过使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。
================================================================================
为各个版本的软件升级工作是很困难的,因为这些补丁程序都是在一套软件的基础上不断地修改与扩充而编写的,并由不同的标志文件转入到不同的模块,虽然程序 体积在不断扩大,但丝毫不影响老用户的功能,这主要是得益于C程序的#ifdef/#else/#endif的作用。
我们主要使用以下几种方法,假设我们已在程序首部定义#ifdef DEBUG与#ifdef TEST:
1.利用#ifdef/#endif将某程序功能模块包括进去,以向某用户提供该功能。
在程序首部定义#ifdef HNLD:
#define 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的定义并重新编译,即可发给用户使用了。
灵活使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。
代码举例:新建define.cpp文件
#include "iostream.h"
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
运行结果为:Press any key to continue
改写代码如下:
#include "iostream.h"
#define DEBUG
int main()
{
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
运行结果为:Beginning execution of main()
Press any key to continue
更一般的情况是,#define语句是包含在一个特定的头文件中。
比如,新建头文件head.h,在文件中加入代码:
#ifndef DEBUG
#define DEBUG
#endif
而在define.cpp源文件中,代码修改如下:
#include "iostream.h"
#include "head.h"
int main(){
#ifdef DEBUG
cout<< "Beginning execution of main()";
#endif
return 0;
}
运行结果如下:Beginning execution of main()
Press any key to continue
结论:通过使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。
================================================================================
为各个版本的软件升级工作是很困难的,因为这些补丁程序都是在一套软件的基础上不断地修改与扩充而编写的,并由不同的标志文件转入到不同的模块,虽然程序 体积在不断扩大,但丝毫不影响老用户的功能,这主要是得益于C程序的#ifdef/#else/#endif的作用。
我们主要使用以下几种方法,假设我们已在程序首部定义#ifdef DEBUG与#ifdef TEST:
1.利用#ifdef/#endif将某程序功能模块包括进去,以向某用户提供该功能。
在程序首部定义#ifdef HNLD:
#define 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的定义并重新编译,即可发给用户使用了。
- #ifdef的用法
- #ifdef的用法
- #ifdef的用法
- #ifdef的用法
- #ifdef的用法
- #ifdef的用法
- #ifdef的用法
- #ifdef的用法
- #ifdef的用法
- #ifdef __cplusplus 的用法
- #ifdef的用法
- #ifdef的用法
- ifdef的用法
- #ifdef的用法
- #ifdef endef的用法
- #ifdef的用法
- #ifndef 与#ifdef的用法
- #define #ifdef #endif的用法
- ScriptManager.RegisterStartupScript()方法
- Linux 中config命令的使用
- 我认为电子商务只有一种死法——不重视数据冤死
- 使用ViewHolder模式来提高自定义adapter的效率
- cl_simple_tree_model -- 2
- #ifdef的用法
- Hive ClassNotFoundException: org.apache.hadoop.hive.contrib.serde2.RegexSerDe
- WordPress代码和分析-页面模板是从哪里来的
- Response.write后马上运行Response.redirect,Response.write没反应
- Android平台一日游
- cl_simple_tree_model -- 3
- 移动广告的爆炸式发展(信息图)
- android 好的开源项目
- ftp的使用tip