这是this的后续问题。
在某些平台上,DWORD
与int
相同是否可以(如何检查?)?如果是这样,那么:
DWORD v1, v2, v3, Build;
GetVersion(&v1, &v2, &v3, &Build);
sprintf(VersionStr, "%d.%d.%d.%d", v1, v2, v3, Build);
在该平台上没有未定义的行为,我是对的吗?
或者以上代码总是和UB一起?
如何检查DWORD
是否与该平台上的int
相同?
(因为我想在上面运行此代码的计算机上并不是未定义的行为)
答案 0 :(得分:3)
在32位编译器上,可用于打印DWORD值的格式说明符为%lu
。如果要以十进制格式打印值,也可以使用%ld
。
您还可以引用一个主题:Why in C++ do we use DWORD rather than unsigned int?