我正在读一本书并遇到一个程序来读取/proc
文件中的条目。
他们提到的程序有以下几行
printf("%.*s", (int) n, line);
我不清楚上面一行的含义
"%.*s
而不是%s
可以阅读代码here
答案 0 :(得分:6)
答案 1 :(得分:0)
强制转换表达式(int)n将n
的值转换为int
类型。这是因为格式化说明符需要普通的int
,并且我假设(因为您没有包含它)变量n
具有不同的类型。
由于size_t
之类的其他类型可能具有其他大小,因此如果未将printf()
显式转换为int
,则会将参数传递给{{1}}。