我试过谷歌搜索它,但没有想出任何东西.有谁知道这是否可以做到?如果不是,有一个优雅的工作吗?
更新:我认为Frank Osterfeld的答案是最明确的解决方案.感谢所有其他答案,我已经提出了你的答案.
您不能以不同的值重新打开相同的枚举:
enum Colors { Red, Blue, Yellow };
enum Colors { Green = 3 }; // ERROR
Run Code Online (Sandbox Code Playgroud)
但是,在C中,所有枚举都可以自动转换为彼此.所以只需创建一个新的枚举,如下所示:
enum Colors { Red, Blue, Yellow };
enum MoreColors { Green = 3 };
int foo()
{
enum Colors c;
c = Green; // This will compile
}
Run Code Online (Sandbox Code Playgroud)
正如其他人所说,你不能重新声明枚举(在哪种情况下,应该使用哪一个?).
如果你只是需要一些常数,并希望延长他们的特殊情况下,可以使用多个enum声明,一个延伸至另一然后用整数来保存的值:
enum Error { NoError=0, AllIsBroken, WhatTheHellAreYouDoing, UserDefinedError };
enum NetworkError { HostNotFound=UserDefinedError+1, ConnectionTimeout, ... };
int error = HostNotFound;
if ( error == NoError )
...
if ( error == HostNotFound )
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3699 次 |
| 最近记录: |