c++ - DWORD 格式说明符

标签 c++

这是对 this 的后续问题.

是否 DWORD 与某些平台上的 int 相同(如何检查?)?如果是这样的话,那么这个:

  DWORD v1, v2, v3, Build;
  GetVersion(&v1, &v2, &v3, &Build);
  sprintf(VersionStr, "%d.%d.%d.%d", v1, v2, v3, Build);

在该平台上不是未定义的行为,对吗??

或者上面的代码总是无处不在?

如何检查DWORD是否与该平台上的int相同?

(因为也许我在想在上面运行这段代码的那台计算机上不是未定义的行为)

最佳答案

在 32 位编译器上,可用于打印 DWORD 值的格式说明符是 %lu。如果要以十进制格式打印值,也可以使用 %ld

您还可以引用一个主题:Why in C++ do we use DWORD rather than unsigned int?

关于c++ - DWORD 格式说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33671758/

相关文章:

c++ - 在 C/C++ 中多次包含头文件

c++ - 为什么 clock::is_steady 返回 const bool 而不是 bool?

c++ - 添加#define new 时不是可识别的运算符或类型

c++ - 通过 boost append 到现有文件

c++ - 如何在 C++ 中生成 4 个不同的随机数

c++ - 派生类中转换运算符为 "still valid"是什么意思

c++ - 非类型引用参数可以在运行时修改,是否意味着模板可以在运行时实例化?

c++ - 对类型 'int' 的非常量左值引用无法绑定(bind)到类型 'int' 的临时对象

C++:如何让不同的类函数操作我的类成员变量

c++ - inotify 是一次性解决方案吗