enum {
ValidationLoginFailed=2000,
ValidationSessionTokenExpired=2001,
ValidationSessionTokenInvalid=2002,
ValidationEmailNotFound=2003
ValidationSucccesMIN=ValidationLoginFailed,
ValidationSucccesMAX=ValidationEmailNotFound,
ValdationValidSuccessCode=9999,
ValdationInvalidCode=10000
};
typedef int ValidationStatusCodes;
请帮帮我。
答案 0 :(得分:2)
在您的代码中,ValidationStatusCodes
表示int
,而不是您的匿名enum
类型。所以他们实际上并没有以任何方式联系。
但是,由于您的enum
包含int
值,您可以说存在某种关系。您可以传递枚举值的名称,它们将被视为int
或ValidationStatusCodes
类型。
顺便说一句,Apple做了类似于你所做的事情,除了他们typedef
他们的集体名称NSInteger
或NSUInteger
而不是int
或uint
}。有关示例,请参阅this question。
尽管如此,更常见的做法是将typedef
您的自定义类型名称直接指向匿名enum
,如下所示:
typedef enum {
ValidationLoginFailed = 2000,
ValidationSessionTokenExpired = 2001,
ValidationSessionTokenInvalid = 2002,
ValidationEmailNotFound = 2003
ValidationSuccessMIN = ValidationLoginFailed,
ValidationSuccessMAX = ValidationEmailNotFound,
ValdationValidSuccessCode = 9999,
ValdationInvalidCode = 10000
} ValidationStatusCodes;