正在加载图片...
宏定义 宏体可缺省表示宏名 定义过或取消宏体 ★不带参数宏定义 ☆一般形式:# define宏名[宏体] ◇功能:用指定标识符(宏名代替字符序列(宏体) 冷枣6减画款外画) 心作用壤鹿义育令裂亵结束 今und止例# refine YEs 格式例# lefine WIDTH80 YES原作用域 今宏展抛 efine LENGTH WIDTH+40语法检登 var=LENGTH2. 制号宏展开:var=80+40+2; 囊斗餐不点0 YES新作用域 开,rni %344592如 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”); 宏定义 不带参数宏定义 ❖一般形式: #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 高等教育资讯网 版权所有