c中常用预处理指令.docVIP

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

c中常用预处理指令 由ANSI的标准规定,预处理指令主要包括: #define、#error、#if#else、#elif、#endif、、#ifdef、#ifndef、#undef、#line、#pragma 下面介绍一些常用指令。 1.#define指令 #define指令是一个宏定义指令,定义的一般形式是: #define宏替换名字符串(或数值) 由#define指令定义后,在程序中每次遇到该宏替换名时就用所定义的字符串(或数值)代替它。 例如:可用下面语句定义TRUE表示数值1,FALSE表示0。 #define TRUE 1 #define FALSE 0 一旦在源程序中使用了TRUE和FALSE,编译时会自动的用1和0代替。 注意: 1.在宏定义语名后没有; 2.在Turbo C程序中习惯上用大写字符作为宏替换名,而且常放在程序开头。 3.宏定义还有一个特点,就是宏替换名可以带有形式参数,在程序中用到时,实际参数会代替这些形式参数。 例如: #define MAX(x,y)(x y)?x:y main() { int i=10,j=15; printf(The Maxmum is%d,MAX(i,j)); } 上例宏定义语句的含义是用宏替换名MAX(x,y)代替x,y中较大者,同样也可定义: #define MIN(x,y)(x y)?x:y 表示用宏替换名MIN(x,y)代替x,y中较小者。 2.#error指令 该指令用于程序的调试,当编译中遇到#error指令就停止编译。其一般形式为: #error出错信息 出错信息不加引号,当编译器遇到这个指令时,显示下列信息并停止编译。 Fatal:filename linename error directive 3.#include指令 #include指令的作用是指示编译器将该指令所指出的另一个源文件嵌入#include指令所在的程序中,文件应使用双引号或尖括号括来。Turbo C库函数的头文件一般用#include指令在程序开关说明。 例如: #include stdio.h 程序也允许嵌入其它文件,例如: main() { #include help.c } 其中help.c为另一个文件,内容可为 printf(Glad to meet you here!); 上例编译时将按集成开发环境的Options/Directories/Include directories中指定的包含文件路径查找被嵌入文件。 4.#if、#else、#endif指令 #if、#els和#endif指令为条件编择指令,它的一般形式为: #if常数表达式 语句段; #else 语句段; #endif 上述结构的含义是:若#if指令后的常数表达式为真,则编译#if到#else之间的程序段;否则编译#else到#endif之间的程序段。 例如: #define MAX 200 main() { #if MAX 999 printf(compiled for bigger\n); #else printf(compiled for small\n); #endif } 5.#undef指令 #undef指令用来删除事先定义的宏定义,其一般形式为: #undef宏替换名 例如: #define TRUE 1 . #undef TURE #undef主要用来使宏替换名只限定在需要使用它们的程序段中 6.#pragma 其格式一般为:#Pragma Para 其中Para为参数,下面来看一些常用的参数。 (1)message参数。Message参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #Pragma message(消息文本) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。 当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些宏,此时我们可以用这条指令在编译的时候就进行检查。假设我们希望判断自己有没有在源代码的什么地方定义了_X86这个宏可以用下面的方法 #ifdef _X86 #Pragma message(_X86 macro activated!) #endif 当我们定义了_X86这个宏以后,应用程序在编译时就会在编译输出窗口里显示_X86 macro activated!。我们就不会因为不记得自己定义的一些特定的宏而抓耳挠腮了。 (2)另一个使用得比较多的pragma参数是code_seg。格式如: #pragma code_seg([\section-name\[,\section-class\]]) 它能够设置程序中函数代码存放的代码段,当我们开发驱动程序的

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档