C 预处理器.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C 预处理器

C 预处理器 C 预处理器 C 预处理器不是编译器的组成部分,但是它是编译过程中⼀个单独的步骤。简⾔之, C 预处理器只不过是⼀个⽂ 替换⼯具⽽已,它们会指⽰编译器在实际编译之前完成 所需的预处理。我们将把 C 预处理器 (C Preprocessor )简写为 CPP 。 所有的预处理器命令都是以井号 (# )开头。它必须是第⼀个⾮空字符,为了增强可 读性,预处理器指令应从第⼀列开始。下⾯列出了所有重要的预处理器指令: 指令 描述 #define 定义宏 #include 包含⼀个源代码⽂件 #undef 取消已定义的宏 #ifdef 如果宏已经定义,则返回真 #ifndef 如果宏没有定义,则返回真 #if 如果给定条件为真,则编译下⾯代码 #else #if 的替代⽅案 #elif 如果前⾯的 #if 给定条件不为真,当前条件为真,则编译下⾯代码 #endif 结束⼀个 #if ……#else 条件编译块 #error 当遇到标准错误时,输出错误消息 #pragma 使⽤标准化⽅法,向编译器发布特殊的命令到编译器中 预处理器实例 分析下⾯的实例来理解不同的指令。 #define MAX_ARRAY_LENGTH 20 这个指令告诉 CPP 把所有的 MAX_ARRAY_LENGT 替换为 20 。使⽤ #define 定义常 量来增强可读性。 #include stdio.h #include myheader.h 这些指令告诉 CPP 从系统库中获取 stdio .h ,并添加⽂ 到当前的源⽂件中。下⼀⾏告 诉 CPP 从 地⽬录中获取 myheader.h ,并添加内容到当前的源⽂件中。 #undef FILE_SIZE #define FILE_SIZE 42 这个指令告诉 CPP 取消已定义的 FILE_SIZE ,并定义它为 42 。 #ifndef MESSAGE #define MESSAGE You wish! #endif 这个指令告诉 CPP 只有当 MESSAGE 未定义时,才定义 MESSAGE 。 #ifdef DEBUG /* Your debugging statements here */ #endif 这个指令告诉 CPP 如果定义了 DEBUG ,则执⾏处理语句。在编译时,如果您向 gcc 编译器传递了 -DDEBUG 开关量,这个指令就⾮常有⽤。它定义了 DEBUG ,您可以 在编译期间随时开启或关闭调试。 预定义宏 ANSI C 定义了许多宏。在编程中您可以使⽤这些宏,但是不同直接修改这些预定义 的宏。 宏 描述 __DATE__ 当前⽇期,⼀个以 MMM DD YYYY 格式表⽰的字符常量。 __TIME__ 当前时间,⼀个以 :MM:SS 格式表⽰的字符常量。 __FILE__ 这会包含当前⽂件名,⼀个字符串常量。 __LINE__ 这会包含当前⾏号,⼀个⼗进制常量。 __STDC__ 当编译器以 ANSI 标准编译时,则定义为 1。 让我们来尝试下⾯的实例: #include stdio.h main() { printf( File :%s\n , __FILE__ ); printf( Date :%s\n , __DATE__ ); printf( Time :%s\n , __TIME__ ); printf( Line :%d\n , __LINE__ ); printf( ANSI :%d\n , __STDC__ ); } 当上⾯的代码 (在⽂件 test.c 中)被编译和执⾏时,它会产⽣下列结果: File :test.c Date :Jun 2 2012 Time :03:36:24 Line :8 ANSI :1 预处理器运算符 C 预处理器提供了下列的运算符来帮助您创建宏: 宏延续运算符 (\ ) ⼀个宏通常写

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档