假设我使用以下printf()
说明符字符串:
printf("%.*s", length, str);
向printf()
询问length
。问题是int
有哪种类型?我只在文档中看到整数的简短提及。
所以看起来好像是const char* startOfString = ...
const char* middleOfString = ...
printf("%.*s", (int)( middleOfString - startOfString ), startOfString);
。然后看起来当字符串很长时我不能使用以下代码:
INT_MAX
看起来我不能以这种方式输出超过int
个字符。
那么哪种类型是精度?它是size_t
还是{{1}}还是其他什么?
答案 0 :(得分:4)
这是int
,您不能以这种方式打印超过INT_MAX
个字符。
根据C标准,§7.21.6.1,第7段。 5:
字段宽度或精度或两者都可以用星号表示。在 在这种情况下,
int
参数提供字段宽度或精度。