3.表达式操作符% 用%可以取得符号常量的值 宏调用时,%操作符后面的表达式立即求值 后作为实参
3.表达式操作符% 用%可以取得符号常量的值 宏调用时,%操作符后面的表达式立即求值 后作为实参
4.字符原意操作符! 在宏的定义和调用时,“&<〉!%”这些字 符有其特殊的用途。如果要使用原意,就在 字符前加!。 ■!字符后面跟的一个字符被原样传送 ■!字符类似于C语言字符串中的转义字符\
4.字符原意操作符! ◼ 在宏的定义和调用时,“& < > ! %”这些字 符有其特殊的用途。 如果要使用原意,就在 字符前加!。 ◼ !字符后面跟的一个字符被原样传送。 ◼ !字符类似于C语言字符串中的转义字符\
宏调用 DefStr book,< Assembly language〉 产生的语句为: strBook bYtE strBook: <Assembly language>,0 而宏调用 DefStr book,!<!< Assembly language!! 产生的语句为 strBook byte strBook: Assembly language>>",o
宏调用DefStr Book, <<Assembly Language>> 产生的语句为: strBook BYTE "strBook: <Assembly Language>", 0 而宏调用DefStr Book, !<!<Assembly Language!>!> 产生的语句为: strBook BYTE "strBook:<<Assembly Language>>", 0
8.1.4宏与子程序的区别 1.工作方式的区别 子程序在“空间”上占优势,使用子程序需 要付出额外的开销,程序的体积较小 而宏在“时间”上占优势,但程序的体积 较大
8.1.4 宏与子程序的区别 1.工作方式的区别 ◼ 子程序在“空间”上占优势,使用子程序需 要付出额外的开销,程序的体积较小 ◼ 而宏在“时间”上占优势 ,但程序的体积 较大
宏与子程序的区别 2.参数传递方式不同 ■宏调用时实参直接替换形参;实参可以是任 何形式或意义的字符组合;参数替换是在 编译时完成的。 而子程序参数的传递是通过寄存器、堆栈等 实现的;参数则只能是以数值形式出现; 程序的参数传递是程序运行时完成的
宏与子程序的区别 2.参数传递方式不同 ◼ 宏调用时实参直接替换形参;实参可以是任 何形式或意义的字符组合 ;参数替换是在 编译时完成的。 ◼ 而子程序参数的传递是通过寄存器、堆栈等 实现的;参数则只能是以数值形式出现 ; 程序的参数传递是程序运行时完成的