1. 格式串说明
格式串包含普通字符和转换说明(conversion specification),其中转换说明以字符%开头。
2. printf格式串中转换说明与输出项不匹配可能遇到的问题之一
C语言编译器不会检测格式串中转换说明的数量是否和输出项的数量相匹配。所以编译器遇到下列两种情况则不会报错:
printf("%d %d\n", i); /*** WRONG 转换说明多于输出项 ***/
printf("%d\n", i, j); /*** WRONG 转换说明少于输出项 ***/
3. printf格式串中转换说明与输出项不匹配可能遇到的问题之二
C语言编译器也不检测 转换说明是否适合要显示项的数据类型。所以编译器遇到下列情况将不能如愿地显示数据。
int i = 0;
float x = 1.0f;
printf("%f %d\n", i, x); /*** WRONG ***/