【发布时间】:2015-12-07 11:25:31
【问题描述】:
我正在查看微控制器上 ADC 的头文件,其中包含以下代码。
/**
* ADC channels type.
*/
typedef enum {
ADC_CH_0,
ADC_CH_1,
ADC_CH_2,
ADC_CH_3,
ADC_CH_4,
ADC_CH_5,
ADC_CH_6,
} adc_channel_t;
在 ADC 的 main.c 中有以下代码行
adc_channel_t channels[] = {ADC_CH_4, ADC_CH_5};
我想知道为什么需要为 ADC 声明新的数据类型? typedef enum 是什么意思?
谢谢
【问题讨论】:
-
typedef只是用来命名一种类型的缩写,因此您不必每次使用时都重新输入整个内容。 -
使用它来缩写
enum类型并没有什么特别之处。 -
您不一定要为 ADC 创建新的数据类型。枚举是一个 int,您可以将其用作一组常量的标识符。从可读性的角度来看,稍后在代码中很明显
ADC_CH_0(其值为 0)正好是通道 0。简单地为所述组使用整数是等待发生的灾难。枚举有助于保持整洁。