gpt4 book ai didi

c - printf 格式字符串最大宽度值(填充)%(??)d%n

转载 作者:行者123 更新时间:2023-12-03 13:34:06 28 4
gpt4 key购买 nike

我可以在 %d 格式说明符中输入的最大宽度值是多少?例如:

int c=0;   
printf("%1234567899d%n",0,&c);
printf("%d",c);
当我使用大值时, c 的写入值为 0 。这是为什么?

最佳答案

虽然没有明确说明,但字段宽度的类型很可能是 int .这是因为如果字段宽度为 *然后是 int争论是预期的。
C standard 的第 7.21.6.1p5 节关于 fprintf函数(任何扩展 printf )声明以下关于字段的内容:

As noted above, a field width, or precision, or both, may be indicatedby an asterisk. In this case, an int argument supplies thefield width or precision. The arguments specifying fieldwidth, or precision, or both, shall appear (in that order)before the argument (if any) to be converted. A negativefield width argument is taken as a - flag followed by apositive field width. A neg ative precision argument istaken as if the precision were omitted.


我在 CentOS 7 和 Ubuntu 18 上对此进行了测试,我可以指定的最大宽度是 2147483614,比有符号 32 位的最大值小 33 int .如果我使用更大的第一个 printf不打印任何内容和 c仍为 0。
一般来说,您可以期望的最大值 c将是 INT_MAX ,但是确切的值会因实现而异。

关于c - printf 格式字符串最大宽度值(填充)%(??)d%n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63058926/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com