【建议】将 无符号整数 的别名由DWORD改为unsigned int或者UINT
微软官方定义如下:typedef unsigned long DWORD;
typedef int INT;
typedef unsigned int UINT;
没区别的,都是一样的东西 Xelloss0618 发表于 2024-2-2 10:04
没区别的,都是一样的东西
不一样 用容器包装后类型不一样了 小小小小鸟 发表于 2024-2-2 10:22
不一样 用容器包装后类型不一样了
对于 32 位以上的 VS 编译器来说,int 和 long 都是 4 字节长度。
这些基本类型,看长度和有没符号就行了,包装的类型无关紧要。
int 的长度一般由机器位数决定,比如 8 位机是 1字节;16 位 2 字节;32 位机 4 字节,64 位为了兼容,改为 4 字节。
而 long 的长度在不同位数里一般是 4 字节长度。 Xelloss0618 发表于 2024-2-2 10:31
对于 32 位以上的 VS 编译器来说,int 和 long 都是 4 字节长度。
这些基本类型,看长度和有没符号就行了 ...
我没描述清楚···用外部库时,比如 很多库都会采用 vector<uint32_t> , 很少见到用 vector<DWORD>的(可能是我见得少?),然而这两个并不是一个数据类型,作为参数或返回值时 会提示无法将参数从“std::vector<DWORD,std::allocator<DWORD>>”转换为“std::vector<uint32_t,std::allocator<uint32_t>> 我在火山里写了个vector模板类,如果 模板实现类用 DWORD,就会遇到这种情况,除非强制转换,不然 我还得特意再封一个自己的 无符号整数 别名用 uint32_t来实现
页:
[1]