为什么%zd printf格式在VS2010中不起作用?

the*_*tna 9 c visual-studio-2010 visual-studio

下面的代码片段不会在visual studio中打印出值.

int main() { 
    intptr_t P = 10;
    printf("test value is %zd",P);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

test value is zd
Run Code Online (Sandbox Code Playgroud)

我希望上面的代码打印出来

test value is 10
Run Code Online (Sandbox Code Playgroud)

我使用intptr_t而不是整数,以使代码在32位和64位架构中进行调整.

Mar*_*som 4

Microsoft版本zprintf. 我认为I前缀可能有效。请参阅http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx