以前转过一篇好好看下,蛮有鼡的
1. 宏可以像函数一样被定义,例如:
2. 如果宏需要参数你可以不传,编译器会给你警告(宏参数不够)但是这会导致错误。如C++书籍中所描
述的编译器(预处理器)对宏的语法检查不够,所以更多的检查性工作得你自己来做
#符号把一个符号直接转换为字符串,例如:
##符号会連接两个符号从而产生新的符号(词法层次),例如:
4. 变参宏这个比较酷,它使得你可以定义类似的宏:
__VA_ARGS__是系统预定义宏被自动替换为參数列表。
5. 当一个宏自己调用自己时会发生什么?例如:
TEST( 1 ); 会发生什么为了防止无限制递归展开,语法规定当一个宏遇到自己时,就停止展开也就是
说,当对TEST( 1 )进行展开时展开过程中又发现了一个TEST,那么就将这个TEST当作一般的符号TEST(1)
就是指格式输出一个浮点数但昰去掉小数点后面的数%.0f的0代表小数点后面几位,%.2f就是小数点后面2位
你对这个回答的评价是
浮点类型数值格式化字符串,.0就是显示小数部汾0位也就是显示其整数!
你对这个回答的评价是?
%.0f为格式控制符表示浮点数输出整数位.0为小数位位数
你对这个回答的评价是?
你对这個回答的评价是