我想声明一个带有4个整数的结构,每个结构只能是0到255.有没有办法呢?目前,我是通过检查输入(在输入函数中)来完成的。
struct
{
int num1;
int num2;
int num3;
int num4;
} ip;
答案 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;
};