#define的用法

#define

慕容0566771
浏览 1620回答 2
2回答

望远

#define这是宏定义,它的作用是《1》让某一个标识符用一个字符串等价代替,或者《2》用来定义宏函数。#define PI 3,14159//作用:程序里出现PI就先用3.14159代换掉 eg:   printf("%f\n",4*PI);<---->printf("%f\n",4*3.14159);eg:   #define MAX(x) x*x        printf("%d\n",MAX(3+4));//输出19        //等价于:printf("%d\n",3+4*3+4);注意是直接等价替换,不要先运算得了个49

shark霯霯

昨天刚学,刚好认真听了课··233以#define开始的行成为宏定义命令行。其定义形式是#define  宏名  替代正文 (宏名和替代正文之间至少有一个空格)此处注意,宏定义结束不用添加“;”,替代正文可以很长,可以是任何文本,中途可以换行,换行时注意,行尾“\”,然后下一行顶格写,否则中途的空格会被认为是替代正文。eg:#define PI 3.14159#define PI 3.14\159#define PI 3.14\    159以上两个换行例子是不一样的。宏替代是纯粹简单的文本,没有优先级的存在。eg:#define A 3+5       printf(“%d”,A *2);输出来的结果是13,而非16。宏定义还有另外一个带参数的形式:#define 宏名(参数列表) 替代正文注意:此时,宏名和(参数列表)中间是没有空格的,参数列表里的参数是没有类型的。宏替代不在是简单的文本替代,而是中途要转个弯,即实参文本代替替代正文中对应的参数,但是还是没有优先级。eg:#define MUL(X,Y) X*Y printf(“%d”,MUL(5,3));printf(“%d”,MUL(5,3+2));我的理解是纯粹的文本代替,没有优先级即完全替代,不加括号。#define宏定义是写在预处理部分的,即在int main的外围;#define 常常用来定义常数(如圆周率)#define常替换函数(eg:#define max(a,b) (a)>(b)?(a):(b)                                          {int d=max(5+3,4);```````````}我的笔记就做这么多/手动围笑/,希望能帮到你~~~~
打开App,查看更多内容
随时随地看视频慕课网APP