C标准库 printf 函数
加入嵌入式技术QQ群:398294860,免费获取嵌入式技术文档,嵌入式最新学习路线指南,更多嵌入式教程,访问宅学部落淘宝店:https://wanglitao.taobao.com/
函数原型
#include <stdio.h>
int printf (const char *format, ...);
int fprintf (FILE *stream, const char *format, ...);
int dprintf (int fd, const char *format, ...);
int sprintf (char *str, const char *format, ...);
int snprintf (char *str, size_t size, const char *format, ...);
#include <stdarg.h>
int vprintf (const char *format, va_list ap);
int vfprintf (FILE *stream, const char *format, va_list ap);
int vdprintf (int fd, const char *format, va_list ap);
int vsprintf (char *str, const char *format, va_list ap);
int vsnprintf (char *str, size_t size, const char *format, va_list ap);
功能描述
C 库函数 printf() 用来格式化打印数据。在内存中存储的数据,我们可以使用不同的格式符去打印到屏幕上
使用示例
分别使用不同的格式符去打印内存中的一个数据:
#include <stdio.h>
int main (void)
{
int a = 0xff223344;
printf ("%d\n", a);
printf ("%u\n", a);
printf ("%c\n", a);
printf ("%x\n", a);
return 0;
}
运行结果:
-14535868
4280431428
D
ff223344
通过运行结果,我们可以看到,虽然打印的是内存中的同一个数据,但是我们使用不同的格式符,打印的结果可能不一样。
参数说明
printf 函数是一个变参函数,每次调用,可以有不同参数列表,支持不同格式的打印。我们经常使用的参数如下表格所示:
函数参数 | 说明 |
---|---|
%d | 格式化打印整型数据 |
%u | 格式化打印无符号整型数据 |
… | … |
函数返回值
- 函数运行成功,返回值为成功打印的字符个数 (不包括 \0 )
- 函数运行失败,返回值为一个负数
高级使用技巧
通过 ANSI C 标准中定义的标准预定义宏,可以打印更多程序运行的信息:比如程序所在文件、函数、行号信息、程序的编译时间等
#include <stdio.h>
int main (void)
{
printf ("%s\%s:%d\n", __FILE__, __func__, __LINE__);
printf ("build time: %s:%s\n", __DATE__, __TIME__);
printf ("C99: %d\n",__STDC__);
return 0;
}
使用注意事项
- printf 函数是一个线程安全函数,在多线程环境中可以放心使用
- 转义字符问题…
- 域宽问题
- 隐式类型转换问题
专门为嵌入式设计的C语言进阶视频教程:《C语言嵌入式Linux高级编程》,一共9期,涉及计算机体系结构、ARM汇编与反汇编、程序的编译链接原理、堆栈内存、Linux内核的面向对象编程思想、多任务编程、C语言的模块化编程等专题,具体课程详情可点击淘宝:C语言嵌入式Linux高级编程