第08篇 C语言的预处理器.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3. 关于C语言标准库 在C编译系统中,提供了许多系统函数和宏定义,而对函数的声明则分别存放在不同的头文件中。如果要调用某一个函数,就必须用#include命令将有关的头文件包含进来。C的库除了保留C的大部分系统函数和宏定义外,还增加了预定义的模板和类。但是不同C库的内容不完全相同,由各C编译系统自行决定。不久前推出的C标准将库的建设也纳入标准,规范化了C标准库,以便使C程序能够在不同的C平台上工作,便于互相移植。新的C标准库中的头文件一般不再包括后缀.h,例如: #include string 但为了使大批已有的C程序能继续使用,许多C++编译系统保留了C的头文件,即提供两种不同的头文件,由程序设计者选用。如 #include iostream.h //C形式的头文件 #include iostream //C++形式的头文件 效果基本上是一样的。建议尽量用符合C++标准的形式,即在包含C++头文件时一般不用后缀。如果用户自己编写头文件,可以用.h为后缀。 一般情况下,在进行编译时对源程序中的每一行都要编译。但是有时希望程序中某一部分内容只在满足一定条件时才进行编译,也就是指定对程序中的一部分内容进行编译的条件。如果不满足这个条件,就不编译这部分内容。这就是“条件编译”。 有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令常用的有以下形式: 1. #if_#endif: 此命令的一般形式为: #if 常数表达式 程序段 #endif 如果常数表达式为真,则编译if后面的程序段(语句块);否则就不编译,跳过这段程序。 2. #if_#else_#endif 此命令的一般形式为: #if 常量表达式 程序段1 #else 程序段2 #endif 3. #if_#elif_#endif 这是用于多路选择的编译命令。它的一般形式为: #if 常量表达式1 程序段1 #elif 常量表达式2 程序段2 ....... #elif 常量表达式n 程序段n #endif 1. #ifdef_#endif类型条件编译命令 第一种格式为: #ifdef 宏名 程序段 #endif 第二种格式为: #ifdef 宏名 程序段1 #else 程序段2 #endif 2. #ifndef_#endif类型条件编译命令 第一种格式为: #ifndef 宏名 程序段1 #endif 第二种格式为: #ifndef 宏名 程序段1 #else 程序段2 #endif #include iostream using namespace std; #define RUN //在调试程序时使之成为注释行 int main( ) { int x=1,y=2,z=3; #ifndef RUN //本行为条件编译命令 cout“x=“x“,y=“y“,z=“z; #endif //本行为条件编译命令 cout “x*y*z=“x *y*zendl; return 1; } 第3行用#define命令的目的不在于用RUN代表一个字符串,而只是表示已定义过RUN,因此RUN后面写什么字符串都无所谓,甚至可以不写字符串。在调试程序时去掉第3行(或在行首加//,使之成为注释行),由于无此行,故未对RUN定义,第6行据此决定编译第7行,运行时输出x,y,z的值,以便用户分析有关变量当前的值。运行程序输出: x=1,y=2,z=3 x*y*z=6 在调试完成后,在运行之前,加上第3行,重新编译,由于此时RUN已被定义过,则该cout语句不被编译,因此在运行时不再输出x,y,z的值。运行情况为: x*y*z=6 #pragma 指令可能是最复杂的预处理指令,它的作用是设定编译器的状态或指示编译器完成一些特定的动作。 其格式一般为: #pragma para 其中para为参数,下面来看一些常用的参数。 message 参数 另一个使用得比较多的pragma参数是code_seg #pragma once (比较常用) #pragma warning( disable: 4507 34; once: 4385; error: 164 ) #pragma comment(...) 常用的lib关键字,可以帮我们连入一个库文件。 对循环优化功能: #pragma loop_opt(on) // 激活 #pragma loop_opt(off) // 终止 #pragma pack 与 内存对齐 * * C语言提

文档评论(0)

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

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

1亿VIP精品文档

相关文档