DWORD格式说明符
DWORD format specifier
这是一个后续问题。
在某些平台上,DWORD
是否与int
相同(如何检查?)?如果是这样的话,那么这个:
DWORD v1, v2, v3, Build;
GetVersion(&v1, &v2, &v3, &Build);
sprintf(VersionStr, "%d.%d.%d.%d", v1, v2, v3, Build);
在那个平台上不是没有定义的行为,对吗??
或者上面的代码是"永远"answers"无处不在"UB?
如何检查该平台上的DWORD
和int
是否相同?
(因为我可能认为在上面运行此代码的计算机上没有未定义的行为)
在32位编译器上,可以用来打印DWORD值的格式说明符是%lu
。如果要以十进制格式打印值,也可以使用%ld
。
您也可以引用一个线程:为什么在C++中我们使用DWORD而不是无符号int?
相关文章:
- 格式说明符C++有什么问题
- 0x%08lx 格式说明符在 printf 语句到 cout
- 在没有格式说明符的情况下在c++中使用类似printf的实用程序
- C++fmt库,只使用格式说明符格式化单个参数
- error_code的格式说明符是什么
- Visual Studio 是否正式支持 __int64 的 "%lld" 格式说明符?
- printf 格式说明符标志'0' %p,正确与否?
- 以下程序的格式说明符可能是什么?
- "%p 格式说明符的参数类型是 'void*'"是什么意思?
- %n格式说明符程序,在不同的编译器上提供不同的输出.为什么?
- Xcode 5 带有 %s 格式说明符的 LLVM printf 在调试控制台中不起作用
- SCANF 格式说明符仅读取数字
- 带有 C 格式说明符的不同输出
- 如何使用格式说明符创建字符串
- 将 %s 格式说明符与 boost::format 和 std::string 一起使用
- C/C++ 用于打印 0.0、1.0、0.025 的单格式说明符
- 在 C++ 中定义 Unicode 时的映射格式说明符
- 为什么我们不将格式说明符与 cout 一起使用?
- DWORD格式说明符
- 使用 printf 时矢量的格式说明符<Vec3b>