在C中有重复的枚举值是否合法?
enum protocol { ascii_prot = 3, /* arbitrary value. */ binary_prot, negotiating_prot = 4 /* Discovering the protocol */ };
binary_prot
和negotiating_prot
等于4
?
是。
是; C并不特别关于枚举值。 为什么你可能这样做是另一个问题,除非有一些理由将发现数据包视为与数据包相同。 (当其他人设计协议时,你可能会尽可能地密切关注他们的文档。)