根据本文件 https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.140).aspx 程序员应该 printf long long 带有 %lld 的变量和 __int64 带有 %I64d 的变量.
根据本文档https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx__int64只是long long的另一个名称。
那么为什么第一个文档不直接说 %lld 也可以用于 __int64 呢? VS团队认为未来__int64会与long long不同吗?我无法想象如果他们关心向后兼容性,这将如何发生......
谢谢你
是的,从
VS2005(
%lld
>= 1400) 开始,VS 确实支持 long long
。
有关受支持的 printf 说明符,请参阅 msdn 文档页。 尽管
_MSC_VER
根据其文档“需要”
__int64
,但是,I64
与 __int64
相同或可转换为 long long
,并且可以在没有警告的情况下工作。