读书人

怎么定义个新的数据类型

发布时间: 2012-09-11 10:49:03 作者: rapoo

如何定义个新的数据类型?
我需要定义一个新的数据类型,要求长度是12位。

char是8位的,短了。
int是16位或者32位的,长了。

实际上如果int是16位的,长点儿也无所谓,浪费点儿。
可是int本身也受系统影响,可能16,可能32啊。

怎么定义一个12位长度的新数据类型呢?或者怎么确保int就是16位的呢?

[解决办法]
没办法定义12bit的数据
要保证字节数,可以struct a{ char m[2] }

大多数情况下,不需要如此节省内存
如果是严格限制内存的单片机等环境,那就没办法了,但一般电脑上,这样做会导致降低运行效率
[解决办法]
用位域就可以了。
[解决办法]
位域结构体(注意位域的大部费特性依赖实现)
[解决办法]
int16_t n = 10;
printf("%d\n", sizeof(n)); //2

[解决办法]
用位域是个不错的选择
[解决办法]
位域是个好方法

读书人网 >C语言

热点推荐