为什么大多数枚举值在声明中以BUTT说明符结束

Why do most enum values end with BUTT specifier in declaration?

本文关键字:BUTT 说明符 结束 声明 大多数 枚举 为什么      更新时间:2023-10-16

在阅读大多数开源代码时,我经常看到enum值以_BUTT说明符结束?这可能听起来很幼稚,但是这种编码风格有什么意义吗?

示例1:

typedef enum __nvp1114a_samplerate {
        NVP1114A_8000,
        NVP1114A_16000,
        NVP1114A_32000,
        NVP1114A_44100,
        NVP1114A_48000,
        NVP1114A_BUTT
} nvp1114a_samplerate;

示例2:

typedef enum hiVIDEO_NORM_E
{
    VIDEO_ENCODING_MODE_PAL=0,
    VIDEO_ENCODING_MODE_NTSC,
    VIDEO_ENCODING_MODE_AUTO,
    VIDEO_ENCODING_MODE_BUTT
} VIDEO_NORM_E;

最后一个_BUTT常数的值为枚举类型中除_BUTT常数外的常数个数

最后一个常量不是必需的,它的存在以及它的命名只是程序员的个人选择。