c中define的用法.docx
《c中define的用法.docx》由会员分享,可在线阅读,更多相关《c中define的用法.docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、c中define的用法c中define的用法c中define的用法的用法你知道吗?下面我就跟你们具体介绍下c中define的用法的用法,希望对你们有用。c中define的用法的用法如下:1、define-无参数宏定义用法一般形式为:#define标识符字符串1#表示其为预处理命令,但凡以#开始的都是预处理命令;define为宏定义命令;标识符为所定义的宏名;字符串能够是常数、表达式、字符串等。2除了经常用到的如#defineMAXNUM100之外,还有其它多种灵敏的用法,如#defineMy*y+3*y,注意,的表达式中是必须的,否则在进行如2*M+2的运算时就会出现错误。3末尾不需要分号假如
2、加分号,会连同分号一起代换。4define只是做简单的文本替换。5作用域为宏定义开场,到源程序结束,终止定义域可用#undefM.6宏名假如以字符串的形式被调用,则不做替换,如printfIMO。7能够嵌套进行定义,如#definePI3.14#defineSPI*R*R8习惯上把宏名写为大写的,以区别普通的变量。2、define和typedef的区别define宏定义是在预处理完成的,typedef实在编译时处理的,typedef不是简单的代换,而是对类型讲明符的重命名。例如:#defineP1int*typedefint*P2;P1a,b;/相当于int*a,b,此时a是int指针,b是i
3、nt整数。P2a,b;/表示a和b都是int指针。3、define带参数宏定义用法一般形式为:#define宏名形参字符串最长见的#defineMAXa,bab?a:b1宏名和形参之间不能有空格。假如上式写为#defineMAXa,bab?a:b,则MAX就表示整个后面的部分了。2带参宏定义的形参是不分配内存的。3在宏定义中的形参是标识符,而宏调用中的实参能够是表达式。#defineSQyy*ymaininta,sq;printfinputanumber:;scanf%d,a;sq=SQa+1;printfsq=%dn,sq;上例中第一行为宏定义,形参为y.程序第七行宏调用中实参为a+1,是一
4、个表达式,在宏展开时,用a+1代换y,再用y*y代换SQ,得到如下语句:sq=a+1*a+1;这与函数的调用是不同的,函数调用时要把实参表达式的值求出来再赋予形参。而宏代换中对实参表达式不作计算直接地照原样代换。4在宏定义中,字符串内的形参通常要用括号括起来以避免出错。在上例中的宏定义中y*y表达式的y都用括号括起来,因而结果是正确的。假如去掉括号,把程序改为下面形式:#defineSQyy*ymaininta,sq;printfinputanumber:;scanf%d,a;sq=SQa+1;printfsq=%dn,sq;运行结果为:inputanumber:3sq=75define的多行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- define 用法
限制150内