有没有办法增加 unsigned char 的大小,以便可以将其转换为大于该大小的整数?
更新:
基本上我正在编辑一个现有系统,其中端口号被定义为无符号字符,因为它们只需要最多 255 的数字。现在它需要增加到任何端口号,所以我试图找到一种简单的方法无需通过 100 个文件更改引用等即可增加大小。
c++ 标准告诉 char 的大小为 1。
但是,您可以使用 typedefs,然后很容易更改大小:
typedef unsigned char data_type; // 1 byte
到
typedef unsigned short data_type; // 2 byte on some platforms
不,您不能更改内置类型的大小。
但是您可以先转换unsigned char
为int
,然后再更改:
unsigned char val = 25;
int int_val = val;
int_val = 1000;
根据问题更新
我认为唯一的选择是手动更改类型。但在更改 make atypedef
并使用它之前:
typedef int PortId
并替换unsigned char
为PortId