内建宏和函数¶
__buildin_static_printf¶
void ___buildin_static_printf(char fmt[], ...);
静态格式化打印函数,编译期间执行,语法与标准C的printf
相似,但要求所有参数必须是字面量(编译期间可计算出结果)。
__buildin_static_print¶
void ___buildin_static_print(...);
静态打印函数,编译期间执行,将所有参数转换成字符串进行打印,要求所有参数必须是字面量(编译期间可计算出结果)。
__buildin_static_errorf¶
void ___buildin_static_errorf(char fmt[], ...);
编译器报错并停止编译,同时具有___buildin_static_printf
的打印功能。
__buildin_static_error¶
void ___buildin_static_error(...);
编译器报错并停止编译,同时具有___buildin_static_print
的打印功能。
__buildin_printf¶
void __buildin_printf(char fmt[], ...);
编译器内建宏,功能同标准C语言的printf函数,编译时由编译器展开。
使用该宏需要对应的printf内建库支持(在工程配置选项
->编译器标志
->链接
中输入-lprintf
),同时用户需要提供void putchar(char)函数。
格式化字符串fmt必须为字符串字面量。
格式说明:
支持的格式:’c’, ‘d’, ‘u’, ‘x’, ‘X’, ‘s’;
支持’-‘左对齐:默认右对齐;
支持宽度:例如”%5d”;
支持数字前插入’0’:例如”%8x”;注意仅可用于格式’d’, ‘u’, ‘x’, ‘X’;
支持正负符号:默认需要时显示’-‘,使用’+’强制正数前显示’+’,使用’ ‘强制正数前保留一个空格;注意仅可用于格式’d’;
支持十六进制前缀:默认无前缀,使用’#’增加前缀”0x”;注意仅可用于格式’x’, ‘X’;
注意:__buildin_printf对ROM/RAM的消耗较大,可以在开发过程中使用,但不建议在最终的应用中保留。