二级C语言:预处理—宏定义和文件包含_第1页
二级C语言:预处理—宏定义和文件包含_第2页
二级C语言:预处理—宏定义和文件包含_第3页
二级C语言:预处理—宏定义和文件包含_第4页
二级C语言:预处理—宏定义和文件包含_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章第八章 预处理预处理2022-5-2宏定义和文件包含宏定义和文件包含宏定义:宏定义:define1.无参宏无参宏#define 标识符标识符 字符串字符串下面的宏定义?下面的宏定义?#define Pi 3.1415927#define M (y*y+3y)#define NAME XiaoMing;宏定义:宏定义:define1.无参宏无参宏#define 标识符标识符 字符串字符串#define M (y*y+3*y)main() int s,y;printf(input a number:);scanf(%d,&y);s=3*M+4*M+5*M;printf(s=%dn,s

2、);main() int s,y;printf(input a number: );scanf(%d,&y);s=3*(y*y+3*y) +4*(y*y+3*y)+5*(y*y+3*y);printf(s=%dn,s);宏定义:宏定义:define1.无参宏无参宏#define 标识符标识符 字符串字符串#define M y*y+3*ymain() int s,y;printf(input a number:);scanf(%d,&y);s=3*M+4*M+5*M;printf(s=%dn,s);main() int s,y;printf(input a number: );

3、scanf(%d,&y);s=3*y*y+3*y +4*y*y+3*y+5*y*y+3*y;printf(s=%dn,s);宏定义:宏定义:define1.无参宏无参宏1.宏的作用域宏的作用域 可以用可以用#undef结束一个宏定义结束一个宏定义#define PI 3.14159main() # undef PI2.引号里面的宏名不会被替换引号里面的宏名不会被替换#define PI 3.14159main() printf(“PI=%8f”,PI);3.宏的嵌套宏的嵌套#define PI 3.1415926#define S PI*y*y4.用宏定义表示数据类型用宏定义表示数据类

4、型#define INT int#define CHAR char#define PT int *INT a,b; CHAR c; PT d;PT e,f;int a,b; char c; int * d;int * e,f;宏定义:宏定义:define2.带参数的宏定义带参数的宏定义#define 宏名宏名(形参表形参表) 字符串字符串#define M(y) y*y+3*yk=M(5); k=5*5+3*5;宏定义:宏定义:define2.带参数的宏定义带参数的宏定义#define MAX(a,b) (ab)?a:b /注意注意MAX后没空格后没空格main() int x,y,max;

5、printf(input two numbers: ); scanf(%d,%d,&x,&y); max=MAX(x,y); printf(max=%dn,max);max=(xy)?x:y;宏定义:思考宏定义:思考2.带参数的宏定义带参数的宏定义请把下面带参宏定义替换一下,想想看,是我们想要的结请把下面带参宏定义替换一下,想想看,是我们想要的结果吗?果吗? #define SQUARE(y) y*yA=SQUARE(5);A=5*5;A=SQUARE(m+5);A=m+5*m+5;宏定义:思考宏定义:思考2.带参数的宏定义带参数的宏定义请把下面带参宏定义替换一下,想想看,是我

6、们想要的结请把下面带参宏定义替换一下,想想看,是我们想要的结果吗?果吗? #define SQUARE(y) (y)*(y)A=SQUARE(5);A=5*5;A=SQUARE(m+5);A=(m+5)*(m+5);A=1/SQUARE(m+5);A=1/(m+5)*(m+5);宏定义:思考宏定义:思考2.带参数的宏定义带参数的宏定义请把下面带参宏定义替换一下,想想看,是我们想要的结请把下面带参宏定义替换一下,想想看,是我们想要的结果吗?果吗? #define SQUARE(y) (y)*(y)A=SQUARE(5);A=5*5;A=SQUARE(m+5);A=(m+5)*(m+5);A=1/

7、SQUARE(m+5);A=1/(m+5)*(m+5);宏定义:思考宏定义:思考2.带参数的宏和函数带参数的宏和函数请把下面带参宏定义替换一下,想想看,是我们想要的结请把下面带参宏定义替换一下,想想看,是我们想要的结果吗?果吗? int SQUARE(int y) return (y)*(y);int i=1;A=SQUARE(+i);int i=1;A=SQUARE(+i);A=(+i)*(+i); #define SQUARE(y) (y)*(y)根据根据编译环境编译环境不同不同:A=2*3; 或或 A=3*2; 或或 A=3*3;A=SQUARE(1+1) =SQUARE(2) =2*2文件包含文件包含基本格式基本格式#include

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论