递归火山软件开发平台

标题: 【建议】将 无符号整数 的别名由DWORD改为unsigned int或者UINT [打印本页]

作者: 小小小小鸟    时间: 2024-2-2 09:48
标题: 【建议】将 无符号整数 的别名由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
Xelloss0618 发表于 2024-2-2 10:04
没区别的,都是一样的东西

不一样 用容器包装后类型不一样了
作者: Xelloss0618    时间: 2024-2-2 10:31
小小小小鸟 发表于 2024-2-2 10:22
不一样 用容器包装后类型不一样了

对于 32 位以上的 VS 编译器来说,int 和 long 都是 4 字节长度。
这些基本类型,看长度和有没符号就行了,包装的类型无关紧要。

int 的长度一般由机器位数决定,比如 8 位机是 1字节;16 位 2 字节;32 位机 4 字节,64 位为了兼容,改为 4 字节。
而 long 的长度在不同位数里一般是 4 字节长度。
作者: 小小小小鸟    时间: 2024-2-2 10:52
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来实现




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4