111宏定义 无参宏定义 ■在预处理时经宏展开后该语句变为: s=3(yy+3xy)+4*(yy+3*y)+5*(y*y十3y); 在宏定义中表达式(y*y+3y两边的括号 不能少,否则会发生错误。 第六章基本数据类型
第六章 基本数据类型 ◼ 在预处理时经宏展开后该语句变为: s=3*(y*y+3*y)+4*(y*y+3*y)+5*(y*y+3*y); ◼ 在宏定义中表达式(y*y+3*y)两边的括号 不能少,否则会发生错误。 11.1 宏定义 一、无参宏定义
111宏定义 、无参宏定义 □说明: 1)宏定义是用宏名来表示一个字符串,在宏展开时 又以该字符串取代宏名,这只是一种简单的代换 字符串中可以含任何字符,可以是常数,也可以 是表达式,预处理程序对它不作任何检查。如有 错误,只能在编译已被宏展开后的源程序时发现。 )宏定义不是说明或语句,在行末不必加分号,如 加上分号则连分号也一起置换。 3宏定义必须写在函数之外,其作用域为从宏定义 命令起到源程序结束。如要终止其作用域可使用 # undef命令。 第六章基本数据类型
第六章 基本数据类型 说明: 1)宏定义是用宏名来表示一个字符串,在宏展开时 又以该字符串取代宏名,这只是一种简单的代换, 字符串中可以含任何字符,可以是常数,也可以 是表达式,预处理程序对它不作任何检查。如有 错误,只能在编译已被宏展开后的源程序时发现。 2)宏定义不是说明或语句,在行末不必加分号,如 加上分号则连分号也一起置换。 3)宏定义必须写在函数之外,其作用域为从宏定义 命令起到源程序结束。如要终止其作用域可使用 #undef命令。 11.1 宏定义 一、无参宏定义
111宏定义 无参宏定义 )宏名在源程序中若用引号括起来,则预处理程序 不对其作宏代换。 「例12 #define oK 100 maino printf( OK) printf("n"); 程序的运行结果为:OK 第六章基本数据类型
第六章 基本数据类型 [例11.2] #define OK 100 main( ) { printf("OK"); printf("\n"); } 程序的运行结果为:OK 4)宏名在源程序中若用引号括起来,则预处理程序 不对其作宏代换。 11.1 宏定义 一、无参宏定义