在阅读一些随机代码时,我碰巧遇到了printf()一个对我来说有点奇怪的表达式,声明是这样的
void PrintDiceFace(int n){
printf("%d 0 %d\n%d %d %3$d\n%2$d 0 %1$d\n\n",n>50,51%n%2,n>53,n%2);
}
Run Code Online (Sandbox Code Playgroud)
这实际上是模糊的片段版本,它实际上打印了电子骰子的面部.对于例子.
请printf()详细解释这个陈述.
POSIX/SUS printf()允许数字后跟$后%,以指示来自可变参数的特定参数应被拾取.
printf("%2$s, %1$s!\n", "world", "Hello");
Run Code Online (Sandbox Code Playgroud)