我有一个问题
如果我们有以下内容会发生什么:
typedef enum {s1=0,s2,s3} states ;
void test( states x ) ;
使用功能测试时,如果我按照以下方式使用它会发生什么:
test(6);
它应该映射到最近的枚举值,还是需要在函数实现中处理?
答案 0 :(得分:2)
枚举有效地视为int。它们只是语法糖,使代码更具可读性。在你的情况下,6将被传递给函数,函数必须处理它。
答案 1 :(得分:1)
[for C]
如果正在做
test(6);
6
将传递给test()
(因为enum
s(被视为)int
s)并且它将被函数的输入所困验证
<强>更新强>
输入验证不是自动完成的。它需要明确编码。