printf打印的值的数量是否取决于为特定程序分配的内存,还是可以继续打印值?
C标准记录了编译器为函数调用接受的最小参数数量:
C11 5.2.4.1翻译限制
该实现应能够翻译和执行至少一个包含以下每个限制的至少一个实例的程序:
因此,您应该能够在初始格式字符串之后将至少126个值传递给printf
,假设格式字符串已正确构造并与后面的实际参数一致。
如果格式字符串是字符串文字,则标准保证编译器可以处理至少4095字节长的字符串文字,并且源行至少4095字符长。 您可以使用字符串连接在多个源行上拆分文字。 如果对格式字符串使用char
数组,则不存在此类限制。
printf
系列函数记录的唯一环境限制是:
任何单次转换可以产生的字符数应至少为4095
这使得格式%10000d
的行为最好由实现定义,但标准不%10000d
要求。
因此,兼容的编译器/库组合应该接受至少126个printf
值,无论您的环境是否允许更多参数可以由实现定义并记录,但标准不保证。
以上就是c/c++开发分享一次调用printf可以打印的值数量是否有限制?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/549211.html