我正在整理一些较旧的代码,这些代码到处都使用“魔术数字”来设置硬件寄存器,并且我想使用常量而不是这些数字来使代码更具表现力(实际上,它们将映射到名称/ values用于记录寄存器)。
但是,我担心随着更改量的增加,我可能会破坏魔术数字。这是一个简化的示例(寄存器集更加复杂):
const short mode0 = 0;
const short mode1 = 1;
const short mode2 = 2;
const short state0 = 0;
const short state1 = 4;
const short state2 = 8;
所以代替:
set_register(5);
我们有:
set_register(state1|mode1);
我正在寻找的是以下版本的构建时间:
ASSERT(5==(state1|mode1));
更新资料
@Christian,感谢您的快速响应,我也对C /非增强环境的答案感兴趣,因为这是驱动程序/内核代码。
ITMISS
白衣非少年
相关分类