根据这份文件 https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.140).aspx程序员应使用%l64 和 __ int64 变量打印 long long 变量%I64d 。< / p>
根据此文档https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx __ int64 只是 long long 的另一个名称。
那么为什么第一份文件只是说%lld 也可以用于 __ int64 ? VS团队是否认为将来 __ int64 与 long long 不同?我无法想象如果他们关心向后兼容性会如何发生这种情况......
谢谢
答案 0 :(得分:0)
是的,VS从VS2013开始为%lld
支持long long
(_MSC_VER
> = 1800)。
有关受支持的printf说明符,请参见msdn documentation page。
尽管__int64
根据他们的文档“需要” I64
,但是__int64
与long long
相同或可以转换为select id,
name,
max(date_) as date_,
max(execution_id) keep (dense_rank last order by date_) as execution_id
from abc
group by id, name
order by id;
ID NAME DATE_ EXECUTION_ID
---------- ---- ---------- ------------
1 AA 2019-09-09 11
2 BB 2019-09-09 44
,并且在没有警告的情况下工作。