0

有没有办法增加 unsigned char 的大小,以便可以将其转换为大于该大小的整数?

更新:

基本上我正在编辑一个现有系统,其中端口号被定义为无符号字符,因为它们只需要最多 255 的数字。现在它需要增加到任何端口号,所以我试图找到一种简单的方法无需通过 100 个文件更改引用等即可增加大小。

4

2 回答 2

3

c++ 标准告诉 char 的大小为 1。

但是,您可以使用 typedefs,然后很容易更改大小:

typedef unsigned char data_type;  // 1 byte

typedef unsigned short data_type; // 2 byte on some platforms
于 2012-07-17T14:37:37.617 回答
2

不,您不能更改内置类型的大小。

但是您可以先转换unsigned charint,然后再更改:

unsigned char val = 25;
int int_val = val;
int_val = 1000; 

根据问题更新

我认为唯一的选择是手动更改类型。但在更改 make atypedef并使用它之前:

typedef int PortId

并替换unsigned charPortId

于 2012-07-17T14:29:39.087 回答