作为一名初学者的C程序员,我在想,在设备中设置控制位的最佳易读易懂的解决方案是什么。是否有任何标准?是否有任何示例代码可供模仿?谷歌没有给出可靠的答案。
我首先看到的方法是简单地设置所需的位。这需要在注释中进行大量解释,并且似乎并不是很专业。
DMA_base_ptr[DMA_CONTROL_OFFS] = 0b10001100;
我看到的第二种方法是创建一个位域。我不确定这是否应该是我坚持的方法,因为我从未遇到过它被用于这种方式(与我提到的第一选项不同)。
struct DMA_control_block_struct
{
unsigned int BYTE:1;
unsigned int HW:1;
// etc
} DMA_control_block_struct;
这两个选项中哪一个更好?是否还有其他我没有考虑到的选项?
非常感谢您提供任何建议。
0b
来表示二进制常量是非标准的。 - Steve Summit0x
标识,八进制则为前导0
,否则为十进制。有时我们希望能有一种输入二进制常量的方式,其中前导0b
是显而易见的表示方法(一些编译器已实现),但正如我所说,这并不是标准规范。 - Steve Summit