正在加载图片...
§7.1宏定义 宏体可缺省,表示宏名 定义过或取消宏体 ★不带参数宏定义 ☆一般形式:# define宏名[宏体] ☆功能用指定标识符(宏名)代替字符序列(宏体) 冷望定/凝在函数外面) define o 0 ☆作用始义會令到夜猎续束 ☆山nd的止身倒和 efine YES1 格例# define WidTH80 YES原作用域 令宏展# efine LENGtH WidtH+40作语法检查 var=LENGTH2 号宏展开:var=80+402 不难0 YES新作用域 吸蜘炎耐 玄齐:prm2干%m,3午412如 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”); §7.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 高等教育资讯网 版权所有