问:我想访问某个字节中的单个位,但是当我尝试用绝对变量结构定义一个位变量时,例如:
static bit bitvar @ ((unsigned)&bytevar)*8+0;
我得到一个编译错误。我该怎么做?
答:简单地回答是,你不能这么做。使用@定义绝对变量结构,在编译时需要一个已知地址。(译者注:编译器编译到这一行时,bytevar的地址并不确定)
更详细的(可能也是更有用的)回答是,这要看具体你是要做什么。你可能会在下面的一些简单的宏定义中找到你所需要的东西:
#define testbit(var, bit) ((var) & (1 <<(bit)))
#define setbit(var, bit) ((var) |= (1 << (bit)))
#define clrbit(var, bit) ((var) &= ~(1 << (bit)))
或者你可以定义一个联合union,例如:
union both {
unsigned char byte;
struct {
unsigned bit0:1; // etc.
} bits;
} var;
于是你就可以直接引用var.byte或者var.bits.bit0。
场效应管有哪些用途?
量子力学的哥本哈根解释
原料价格上涨,APS智能排产在锂电池行业的应用
光纤传输性能分析:非线性噪声来源简述
OPPOR11什么时候上市最新消息:OPPO R11拍照神器即将发布,现实生活真机曝光以及相机拍摄图片效果!
映射位到某个RAM变量的方法
空间转录组测序用于免疫治疗研究
如何防范钓鱼wifi
跨阻放大器电路的增益和动态特性的指导性示例
从芯出发 驱动未来 宏微科技倾情助力公益活动
人工智能技术加持 苏宁金融为反欺诈装上“慧眼”
威马汽车销量再创佳绩,以品质和服务赢得用户认可
苹果iWatch五大暗示:这不是一款简单的手表
首尔半导体及首尔伟傲世推出第二代LED技术
一文讲解DMA外设到存储器的传输方式
重磅政策!深圳市智能传感器产业专项扶持计划实施细则征求意见!
工业相机组成 工业相机选型
如何用TSN流识别技术破解航空电子网络的传输难题?
关于一场电容器的技术盛宴 最新技术规范及出口认证要求解析
微软开始新一轮强制升级弹窗 Win10首个正式版被抛弃