你可能不知道的printf

💡 原文中文,约3700字,阅读约需9分钟。
📝

内容提要

本文介绍了C语言中printf函数的输出结果。通过示例程序展示了不同情况下的输出结果,并解答了一些常见问题。文章还讨论了可变参数中的类型提升、参数入栈顺序和计算顺序、浮点数的有效位、可变域宽和精度以及格式控制符的处理方式。最后总结了一些注意事项。

🎯

关键要点

  • printf函数是C语言中最早接触的库函数之一。
  • 示例程序展示了printf函数在不同情况下的输出结果。
  • 可变参数中的类型提升规则:float提升到double,char和short提升到int。
  • 参数入栈顺序是从右往左,计算顺序没有规定。
  • double类型的有效位为15到16位。
  • printf支持可变域宽和精度,通过替换域宽和精度修饰符实现。
  • 格式控制符需要与对应参数类型匹配,避免未定义行为。
  • 总结注意事项:格式控制符匹配、避免依赖计算顺序、注意参数类型、处理NULL和整型、关注编译器警告。
➡️

继续阅读