首页 > 解决方案 > 如果传递了枚举的无效值,则发出警告?

问题描述

如果我有一个带enum参数的函数,并且我传递了一个不代表有效枚举成员的文字,我可以让编译器发出警告(gcc、clang、msvc?)示例代码:

typedef enum {
    GPIO_0,
    GPIO_1,
    GPIO_2,
    GPIO_3
} gpio_t;

void gpio_set(gpio_t gpionum, uint8_t value) {
    // ...
}

int main(int argc, const char** argv) {
    // I want a warning here because there is no 5 in gpio_t:
    gpio_set(5, 1);
}

标签: cgccclangcompiler-warnings

解决方案


推荐阅读