2012-07-17 58 views
0

有没有办法增加一个无符号字符的大小,以便它可以被转换成一个大于该大小的整数?简单的方法来使大于256的无符号字符?所以它可以被转换为整数

UPDATE:

基本上我编辑,即一个端口号被定义为unsigned char,因为它们只需要数目高达255现在需要将其升高到任何端口号的exsisting系统,所以我试图找到增加尺寸,而不必经过文件改变引用等100的一个简单的方法..

+2

那你想干什么? – 2012-07-17 14:39:19

+0

对不起,编辑我的问题给它一个理由! – 2012-07-17 14:43:22

+0

'unsigned char'只能保存256个不同的值,句点。如果你想要更多,你将不得不使用另一种类型或添加另一个变量来保存额外的信息... – 2012-07-17 14:48:17

回答

2

不,你不能改变的内建类型的大小。

但是你可以投unsigned charint第一,后来更改:

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

根据问题的更新

我认为唯一的方法是手动更改类型。但改变做出typedef并使用它之前:

typedef int PortId 

PortId

+0

是的,它看起来像是一本手工作业!哦,值得一试! – 2012-07-17 15:05:40

3

的C替换unsigned char ++标准告诉字符的大小为1

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

typedef unsigned char data_type; // 1 byte 

typedef unsigned short data_type; // 2 byte on some platforms 
+2

如果你真的希望它是2个字节,你需要'uint16_t',而不是'short'。 – Linuxios 2012-07-17 14:41:59

+1

'sizeof(char)'是1个字节,但它可能是一个64位字节 – 2012-07-17 15:02:18

+1

@JonathanWakely在这种情况下,在问题中已经明确指出它是一个8位字节。 – 2012-07-17 15:02:54

相关问题