【发布时间】:2012-06-14 04:33:54
【问题描述】:
我正在为微处理器编写一些代码。
它有几个大的、关键的常数。
#define F_CPU 16000000UL
在这种情况下,这是 CPU 频率。以赫兹为单位。
事实上,如果不手动在数字上移动光标,很难判断这是 1,600,000、160,000,000 还是 16,000,000。
如果我在数字#define F_CPU 16,000,000UL 中加上逗号,它会截断常量。
我使用过一些具有特定数字分隔符的深奥语言,旨在使大数字更具可读性(例如16_000_000,主要用于 MCU 的语言)。大的“幻数”在嵌入式产品中相当常见,因为需要它们来描述 MCU 如何与现实世界对话的各个方面。
C 中有这样的东西吗?
【问题讨论】:
-
“幻数”一词通常是指突然出现在代码中间的数字常量。例如:
if (var == 16000000) ...(坏),而不是if (var == F_CPU) ...(好)。 -
有类似的东西有帮助吗:#define F_CPU NUM_GROUPED_3ARGS(16,000,000UL)? stackoverflow.com/questions/10977260/…
标签: c embedded readability microprocessors