c语言的预处理命令只有宏定义和文件包含,C语言程序设计_中科大_6-第六章 预处理 宏定义、文件包含...

《C语言程序设计_中科大_6-第六章 预处理 宏定义、文件包含》由会员分享,可在线阅读,更多相关《C语言程序设计_中科大_6-第六章 预处理 宏定义、文件包含(11页珍藏版)》请在人人文库网上搜索。

1、第6章 预 处 理,C语言程序设计 - 第6章 预处理,2,目 录,预处理 宏定义 文件包含 条件编译,C语言程序设计 - 第6章 预处理,3,预处理 (Preprocessor),预处理 在编译之前对源程序进行“预处理” 预处理命令不是C语句,末尾没有分号 预处理命令不在可执行文件中执行 预处理命令都以#开始 包括宏定义、文件包含、条件编译等 举例 #define MAX 1000 #include ,C语言程序设计 - 第6章 预处理,4,宏(Macro)定义,无参数的宏定义 带参数的宏定义,C语言程序设计 - 第6章 预处理,5,无参数的宏定义,一般形式 #define 标识符 字符串 。

2、说明 把源程序中相应标识符予以替换 仅是简单的字符串替换,没有任何语法正确性检查 有效范围从定义处开始,到文件结束,或者由#undef命令终止作用域 行末没有分号,如有分号将会被一起替换,C语言程序设计 - 第6章 预处理,6,无参宏定义举例,#define R 3.0 #define PI 3.1415926 #define L 2*PI*R #define begin #define end #define forever for(;) void main() begin /* */ printf(L=%f, L); #undef PI /* 取消对PI的宏定义 */ forever; /。

3、* for(;); 无限循环 */ end /* */,C语言程序设计 - 第6章 预处理,7,带参数的宏定义,一般形式 #define 宏名(参数表) 字符串 说明 宏定义仅是把参数作为字符串做简单替换,而不做任何运算求值和语法检查 宏名与参数表的括号之间不应有空格 应注意参数替换后可能出现的语法错误和意料之外的运算 应在宏定义内容及其中参数两边加上括号,C语言程序设计 - 第6章 预处理,8,带参宏定义举例,#define S1(a,b) a*b #define S2(a,b) (a)*(b) #define max(a,b) (a)(b)?(a):(b) void main() int 。

4、x=3, y=4, i=5, j=6, s, z; s=S1(x+y, x-y); /* s=x+y*x-y; s=11 */ s=S2(x+y, x-y); /* s=(x+y)*(x-y); s=-7 */ z=max(i+, j+); /* z=(i+)(j+)?(i+):(j+); */ /* z=7, i=6, j=8 */ ,C语言程序设计 - 第6章 预处理,9,文件包含,一般形式 #include filename #include 说明 把另一个源文件的全部内容包含进来 预编译后,它们已成为一个文件 头文件的扩展名一般用.h,但并非规定 调用库函数一般使用,也可以使用 调用用户编写的头文件应使用,C语言程序设计 - 第6章 预处理,10,条件编译,条件编译 对某些部分的源程序指定编译的条件 可以减少被编译的语句,减少目标程序的长度,减少运行时间 有利于移植程序,增加程序的灵活性 命令形式 #ifdef.#else.#endif #ifndef.#else.#endif #if.#else.#endif,C语言程序设计 - 第6章 预处理,11,结束,The End。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值