C语言的伪指令宏.doc

C语言的伪指令宏.doc

ID:55631205

大小:22.50 KB

页数:3页

时间:2020-05-21

C语言的伪指令宏.doc_第1页
C语言的伪指令宏.doc_第2页
C语言的伪指令宏.doc_第3页
资源描述:

《C语言的伪指令宏.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、伪指令宏宏续行符:宏的用法:当源文件被预处理器处理时,每遇到该宏标识符,预处理器便在宏的所在处将宏扩展为宏体。l简单宏定义格式:#define宏表示符号宏体例:#defineWIN_MAIN_HS0l参数宏定义格式:#define宏标识符(形参0,形参1,形参2,….)宏体许多库函数是用参数宏写的。参数宏和函数的区别:1、形参表中没有类型说明符;2、参数宏在时空的开销上比函数都要小。预处理器在处理参数宏时使用两遍宏展开:1、展开宏体;2、对展开后的宏体用实参替换形式参数;例:#defineDe

2、bugNumber(x,y,value)Gotoxy(x,y,BYTE_DISPLAY);  PrintfDec(value)l宏释放用于释放原定义的宏标识符。定义格式:#undef宏标识符例:#defineROW_COUNT18…..#undefROW_COUNT#defineROW_COUNT20l条件宏定义先测试是否定义过某宏标识符,然后决定如何处理。定义格式:格式一:#ifdef宏标识符#undef宏标识符#define宏标识符宏体#else#define宏标识符宏体#endif格式二

3、:#ifndef宏标识符#define宏标识符宏体#else#undef宏标识符#define宏标识符宏体#endif例子:l预定义宏预处理器的预定义宏一般有:__D-ATA__:当时的日期;__TIME__:当时的日期;__FILE__:所在文件名;__LINE__:所在文件的行数;__STDC__:当与ANCIC相兼容时,它定义宏体是1。l宏体中使用转义符#和合并符##转义符#定义参数宏时,在宏体中允许将#号加于参数之前。此时的#号为预处理器的转义符。在宏扩展时将#后的参数转义为字符串。例:

4、#definePRINTF(x)printf(#x“=%d”,x)在源程序中有PRINTF(Age);经预编译器扩展为printf(“Age””=%d”,Age);也即:printf(“Age=%d”,Age);合并符##在宏体内,合并符##将两边的单词合并为一个单词。合并符两边允许有任意个空格符。预处理器在处理时,将这些空格符和##一并删除,使得合并符两边的单词合并为一。例:#definePRINTF(index)printf(“Age”#index“=%d”,Age##ind

5、ex);PRINTF(2);//等价于 printf(“Age2=%d”,Age2);l条件编译伪指令写给编译器的,指示编译器只编译满足条件的那部分。预处理器的作用是,稍描并扩展宏,其他内容不动,留给编译器处理。定义格式:#if(条件表达式1)….#elif(条件表达式2)….#elif(条件表达式n)…#else….#endif条件表达式允许用宏标识符。l#pragma伪指令l#line伪指令l

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。