你可能不知道的printf
💡
原文中文,约3700字,阅读约需9分钟。
📝
内容提要
本文介绍了C语言中printf函数的输出结果。通过示例程序展示了不同情况下的输出结果,并解答了一些常见问题。文章还讨论了可变参数中的类型提升、参数入栈顺序和计算顺序、浮点数的有效位、可变域宽和精度以及格式控制符的处理方式。最后总结了一些注意事项。
🎯
关键要点
- printf函数是C语言中最早接触的库函数之一。
- 示例程序展示了printf函数在不同情况下的输出结果。
- 可变参数中的类型提升规则:float提升到double,char和short提升到int。
- 参数入栈顺序是从右往左,计算顺序没有规定。
- double类型的有效位为15到16位。
- printf支持可变域宽和精度,通过替换域宽和精度修饰符实现。
- 格式控制符需要与对应参数类型匹配,避免未定义行为。
- 总结注意事项:格式控制符匹配、避免依赖计算顺序、注意参数类型、处理NULL和整型、关注编译器警告。
➡️