正在加载图片...
8.1宏定义 ★不带参数宏定义 令一般形式:# define宏名[宏体] 令功能用指定标识符(宏名代替字待序列(宏体) 什思YE图数外Ⅲ) 作用域歉仑义冷到文件结束 并ndee条t方作域5926 格武 finetune则rt( Hello, World)); 例# define v|DTH80 宏展升# ine LENGTH WIDTH+40p S原作用域 va=LENGTH*2 中宏展开:=80+402; S新作用域 宏开:pn(?=%i,:141534如 if(x==YES) printf(“correct!\n”); else if (x==NO) printf(“error!\n”); 展开后: if(x==1) printf(“correct!\n”); else if (x==0) printf(“error!\n”); 8.1 宏定义 不带参数宏定义 ❖一般形式: #define 宏名 [宏体] ❖功能:用指定标识符(宏名)代替字符序列(宏体) 宏展开:预编译时,用宏体替换宏名---不作语法检查 如 #define YES 1 #define NO 0 #define PI 3.1415926 #define OUT printf(“Hello,World”); 定义位置:任意(一般在函数外面) 作用域:从定义命令到文件结束 #undef可终止宏名作用域 格式: #undef 宏名 例 #define YES 1 main() { …….. } #undef YES #define YES 0 max() {…….. } YES原作用域 YES新作用域 宏定义可嵌套,不能递归 例 #define MAX MAX+10 () 引号中的内容与宏名相同也不置换 例 #define PI 3.14159 printf(“2*PI=%f\n”,PI*2); 宏展开:printf(“2*PI=%f\n”,3.14159*2); 宏定义中使用必要的括号() 例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2; 宏展开:var= 80+40 *2; ( ) ( ) 例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2; 宏展开:var= 80+40 *2;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有