霸气侧漏 发表于 2018-12-27 15:09:52

怎样定义变量占用大小是7bit,4bit等待

在用51单片机,因为ram比较小,有些变量只需要2bit   4bit7bit,因此我想定义一个变量,占用的内存只为2bit   4bit7bit等等,比如2个bit可以组成一个byte,4个2bit能够组成一个1byte。在用联合体,就能方便的使用。C语言有没有什么办法

zzh90513 发表于 2018-12-27 15:14:05

struct bitValue
{
    uint8_t 1bit : 1;
    uint8_t 2bit : 2;
    uint8_t 3bit : 3;
    uint8_t 2bit : 2;
};

struct bitValue bitByte;

bitByte.1bit= 1;

霸气侧漏 发表于 2018-12-27 15:22:02

zzh90513 发表于 2018-12-27 15:14
struct bitValue
{
    uint8_t 1bit : 1;


这个是不是必须是8bit的大小

霸气侧漏 发表于 2018-12-27 15:27:04

zzh90513 发表于 2018-12-27 15:14
struct bitValue
{
    uint8_t 1bit : 1;


不错不错,这好用

鲜衣怒马 发表于 2018-12-27 15:34:46

位域了解一下

霸气侧漏 发表于 2018-12-27 15:49:17

鲜衣怒马 发表于 2018-12-27 15:34
位域了解一下

嗯,位域不错,谢谢

nanfang2000 发表于 2018-12-27 16:12:21

2楼这种数字在前的变量命名能通过编译?

霸气侧漏 发表于 2018-12-27 16:16:51

nanfang2000 发表于 2018-12-27 16:12
2楼这种数字在前的变量命名能通过编译?

不能,第一个不能为数字

zzh90513 发表于 2018-12-27 17:11:14

霸气侧漏 发表于 2018-12-27 16:16
不能,第一个不能为数字

随手写了一下,只是示意一下,可以随意数量,随意类型都行,结构体都是自动对齐的,如果能是同一类型更好

霸气侧漏 发表于 2018-12-27 17:37:36

zzh90513 发表于 2018-12-27 17:11
随手写了一下,只是示意一下,可以随意数量,随意类型都行,结构体都是自动对齐的,如果能是同一类型更好 ...

明白,已经秒懂
页: [1]
查看完整版本: 怎样定义变量占用大小是7bit,4bit等待