整数,范围从0到255

时间:2013-12-09 23:24:19

标签: c struct integer ip

我想声明一个带有4个整数的结构,每个结构只能是0到255.有没有办法呢?目前,我是通过检查输入(在输入函数中)来完成的。

struct
{ 
    int num1;
    int num2;
    int num3;
    int num4;
} ip;

2 个答案:

答案 0 :(得分:4)

嗯,您可以使用unsigned char(或更好,uint8_t),但这并不意味着您可以停止检查输入。这取决于您的要求。如果我输入256会发生什么?溢出好吗?

另外,sizeof(char)定义为1,但一个字节未定义为8位。在大多数硬件上,您都可以,但出于这个原因,使用uint8_t可以更好地为您服务。

答案 1 :(得分:0)

是的,您可以使用位域类型:

struct ip 
{
    unsigned num1 : 8;
    unsigned num2 : 8;
    unsigned num3 : 8;
    unsigned num4 : 8;
};