使unsigned char大于256的简单方法?所以它可以转换为整数

时间:2012-07-17 14:28:54

标签: c++ char int

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

更新:

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

2 个答案:

答案 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