计算机-c语言条件编译详解.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机-c语言条件编译详解

预处理之条件编译 1、条件编译 (1)为什么需要条件编译 有时候我们希望程序有多种配置,我们在源代码编写时写好了各种配置的代 码,然后给个配置开关,在源代码级别去修改配置开关来让程序编译出不同的效 果。 (2)常见的条件编译有哪些 (1)#if #else #elif #endif (2)#ifdef #endif 宏定义来实现条件编译 (#define #undef #ifdef) 程序有DEBUG版本和RELEASE版本,区别就是编译时有无定义DEBUG宏。 方法一:注释 例:macro.c 掉 #include stdio.h 方法二:此处插入 #define DEBUG #undef DEBUG #define DEBUG #ifdef DEBUG #define debug(x) printf(x) #else #define debug(x) #endif int main(void) { debug(this is a debug info.\n); return 0; } 在本例中,我们可以通过注释#define DEBUG或者在#define DEBUG 后加#undef DEBUG,通过这样的开关就可以配置DEBUG版本和RELEASE 版本的程序。 (3)#ifndef #define #endif 举例: #ifndef __ASM_ARM_BITOPS_H // 如 果 不 存 在 asm-arm/bitops.h #define __ASM_ARM_BITOPS_H //就引入asm-arm/bitops.h ... 头文件的内容 ... #endif /* _ARM_BITOPS_H */ // 否 则 不 引 入 asm-arm/bitops.h 这是为了避免重复包含bitops.h,因为当第一次包含这个头文件的 时候,会定义出__ASM_ARM_BITOPS_H宏,后续再次包含该头文件时,因 为已经有了该宏定义,文件#ifndef__ASM_ARM_BITOPS_H不会成立,所 以头文件不会被再次包含。 (4)#if defined , #ifdef 和 #if !defined, #ifndef, #if defined (x) ...code... #endif 这个#if defined它不管里面的 “x”的逻辑是 “真”还是 “假”它 只管这个程序的前面的宏定义里面有没有定义“x”这个宏,如果定义了 x这个宏,那么,编译器会编译中间的…code…否则直接忽视中间的… code…代码。#if defined取反就是#if !defined。 #ifdef x与 #if defined(x)用法一致,#ifndef x和 #if !defined(x) 用法一致。 例:preprocess_test.c #includestdio.h #define

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档