如果存在多个具有相同值的枚举常量,是否存在一个常数我得到的逻辑?
我尝试了下面的变化,但无法得到合理的逻辑.
public class Program
{
public static void Main(string[] args)
{
Test a = 0;
Console.WriteLine(a);
}
}
Run Code Online (Sandbox Code Playgroud)
enum Test
{
a1=0,
a2=0,
a3=0,
a4=0,
}
Run Code Online (Sandbox Code Playgroud)
输出:
a2
Run Code Online (Sandbox Code Playgroud)
enum Test
{
a1=0,
a2=0,
a3,
a4=0,
}
Run Code Online (Sandbox Code Playgroud)
输出:
a4
Run Code Online (Sandbox Code Playgroud)
enum Test
{
a1=0,
a2=0,
a3,
a4,
}
Run Code Online (Sandbox Code Playgroud)
输出:
a2
Run Code Online (Sandbox Code Playgroud)
enum Test
{
a1=0,
a2=0,
a3,
a4
}
Run Code Online (Sandbox Code Playgroud)
输出:
a1
Run Code Online (Sandbox Code Playgroud) enum protocol {
ascii_prot = 3, /* arbitrary value. */
binary_prot,
negotiating_prot = 4 /* Discovering the protocol */
};
Run Code Online (Sandbox Code Playgroud)
双方binary_prot并negotiating_prot等于4?
我想我已经在某处读过,在C中取一个枚举值的地址是非法的(枚举值不是左值;但是,我现在找不到任何关于此的信息).这是正确的,如果是的话,为什么?
编辑:
这是一个例子,用上面的"枚举值"来澄清我的意思.我的意思是取first_value下面的地址,而不是获取枚举的实际实例的地址:
enum myenum
{
first_value,
second_value
};
Run Code Online (Sandbox Code Playgroud)