电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第5讲 编译预处理和位运算VIP免费

第5讲  编译预处理和位运算_第1页
1/24
第5讲  编译预处理和位运算_第2页
2/24
第5讲  编译预处理和位运算_第3页
3/24
第5讲编译预处理和位运算一、编译预处理1、宏定义2、文件包含二、位运算1、概念:用标识符来表示一个字符串,标识符叫宏名。一、宏定义:(P5)2、无参宏定义1)无参宏定义的一般格式:#define标识符字符串例如:#definePI3.141592)作用:在宏定义之后,凡是该标识符出现的地方用对应的字符串来代替。上面的定义之后,凡是PI都用3.14159来代替。例输入半径,计算以该半径为圆的周长与圆面积、球的体积与表面积。#include#definePI3.14159voidmain(){floatr,yzc,ymj,qbmj,qtj;scanf("%f",&r);yzc=2*PI*r;ymj=PI*r*r;qbmj=4*PI*r*r;qtj=4*PI*r*r*r/3;printf("%f,%f,%f,%f\n",yzc,ymj,qbmj,qtj);}3、带参数的宏定义(P8)1)带参宏定义的一般格式:#define标识符(参数表)字符串例如:#defineADD(x,y)x+y2)作用:在宏定义之后,凡是该标识符出现的地方用对应的字符串来代替,参数也作相应的替换。上面的定义之后,程序中如果出现ADD(4,5),则用4+5来代替,出现ADD(a,b),则用a+b来代替。#include#definePI3.14159#defineAREA(r)PI*r*rvoidmain(){floatx,s;x=10.0;s=AREA(x);printf("s=%.1f\n",s);}写出下面程序的结果。执行结果:s=314.2#include#defineADD(x,y)x+y#defineMAX(x,y)x>y?x:yvoidmain(){inta=4,b=5,c,d;c=ADD(a,b);d=MAX(a,b);printf("c=%d\td=%d\n",c,d);floatw,z;w=ADD(5.6,-5.8);z=MAX(5.6,-5.8);printf("w=%.1f\tz=%.1f\n",w,z);}写出下面程序的结果。执行结果:c=5d=5w=-0.2z=5.6写出下面程序的结果。#include#defineMUL(x,y)x*yvoidmain(){inta=3,b=4,c=5,d=6,m1,m2;m1=MUL(a,b);m2=MUL(a+b,c+d);printf("m1=%d\n",m1);printf("m2=%d\n",m2);}执行结果:m1=12m2=29修改方法1:#include#defineMUL(x,y)(x)*(y)voidmain(){inta=3,b=4,c=5,d=6,m1,m2;m1=MUL(a,b);m2=MUL(a+b,c+d);printf("m1=%d\n",m1);printf("m2=%d\n",m2);}执行结果:m1=12m2=77修改方法2:#include#defineMUL(x,y)x*yvoidmain(){inta=3,b=4,c=5,d=6,m1,m2;m1=MUL(a,b);m2=MUL((a+b),(c+d));printf("m1=%d\n",m1);printf("m2=%d\n",m2);}执行结果:m1=12m2=771、文件包含是C语言的一个重要功能,其作用是将另外一个文件的内容包含进来。C语言使用#include来实现,命令格式:#include"文件名"#include<文件名>二、文件包含(P10)例如:#include"stdio.h"#include2、文件包含通常用来解决程序使用C的库函数和公共符号常量的问题。例如:sqrt()函数、EOF。3、两种格式的区别#include“文件名”表示先在源程序文件的当前目录下查找文件,如果当前目录下未找到文件再到包含目录下查找。#include<文件名>表示只在包含目录下查找。包含目录是编译系统的一个参数,在VC6.0下通过“工具”菜单中的“选项”、“目录”来查询与设置,而在DEVC++下通过“工具”菜单中的“编译选项”、“目录”、“C包含文件”来查询与设置。二、位运算(P44)位是指二进制数中的一位,其值为0或者1。位运算包括与、或、非、异或、左移、右移。参与位运算的两个操作数必须是字符型或者整型,不能是实数。如果是操作数是负数,则用操作数的补码形式参与运算;如果是操作数是字符,则用操作数的ASCII码参与运算。在进行位运算时,最好把二个数化成二进制,然后根据位运算的运算规则进行计算。每个位运算的规则是不变的,但计算结果可能与参与计算的操作数的位数有关。1、按位与运算&#includevoidmain(){chara=3,b=50;printf("a&b=%d\n",a&b);}程序执行结果:a&b=2程序执行结果:a&b=2例1写出下面程序的执行结果。00000011=3&00110010=50————————00000010=2规则:二个为1才为1,否则为0。#includevoidmain(){chara=-3,b=50;printf("a&b=%d\n",a&b);}程序执行结果:a&b=48程序执行结果:a&b=48例2写出下面程序的执行结果。11111101=-3&00110010=50————————00110000=482、按位或运算|#includevoidmain(){chara=3,b=50;printf("a|b=%d\n",a|b);}程序执行结果:a|b=51程序执行结果:a|b=51例1写出下面程序的执行结果。00000011=3|...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第5讲 编译预处理和位运算

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部