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