Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有个问题
如果我们有以下情况会发生什么:
typedef enum {s1=0,s2,s3} states ; void test( states x ) ;
使用功能测试时,如果我像下面这样使用它会发生什么:
test(6);
应该映射到最近的枚举值,还是需要在函数实现中处理?
大多数 C 编译器将 enum 有效地视为 int 。它们只是使代码更具可读性的语法糖。在您的情况下, 6 将被传递给函数并且函数必须处理它。
[C用]
如果做
6将被传递给test()(as enums are (视为) ints) 并且它应该被函数的输入验证捕获。
6
test()
enum
int
更新:
输入验证不会自动完成。它需要显式编码。