我知道如果我像这样定义枚举工作日:
enum weekday {
MON,
TUE,
WED,
THU,
FRI,
};
Run Code Online (Sandbox Code Playgroud)
然后,MON默认情况下内部等于0,TUE为1,WED为2 ......
但如果我这样定义它:
enum weekday {
MON,
TUE = 0,
WED,
THU,
FRI,
};
Run Code Online (Sandbox Code Playgroud)
然后这两个MON和TUE将得到的0值.
系统如何在内部区分MON和TUE?我的意思是,如果我宣布这样的事情:
enum weekday today = 0;
Run Code Online (Sandbox Code Playgroud)
那么今天MON还是TUE?或者,从哲学上讲,两者兼而有之?
我是C编程语言的新手,我想问一个问题.
整数我在这里铸造浮动然后f(不知何故)成功代表5.0:
int i = 5;
float f = i; //Something happened here...
Run Code Online (Sandbox Code Playgroud)
但是,如果我们尝试这种方法:
int i = 5;
float f = *(float *)&i;
Run Code Online (Sandbox Code Playgroud)
f不会得到5.0,因为它以"float的方式"解释存储在i中的位.那么编译器在第一种情况下实际上做了多少魔术呢?这似乎是一项非常努力的工作......有人可以指明吗?谢谢.