我做了一個枚舉一個小的測試,這裏就是我:C++類型爲char的枚舉,被編譯器忽略或意外的行爲?
enum anyoldname : char
{
aa = 'a', ab = 'b', ac = 'c', ad = 'd'
};
int main()
{
anyoldname i_have_an_enum_here = aa; // Would expect i_have_an_enum_here to be of type char?
std::cout << i_have_an_enum_here << std::endl;
return 0;
}
輸出爲:98
,除非我投明確燒焦像這樣:
std::cout << (char)i_have_an_enum_here;
或更改anyoldname
到char
。
爲什麼打印值98
而不是b
?
順便提一句sizeof()
返回1
,即; 1個字節,一個char
。
對不起,它應該是'aa','aa =='a''爲真 – user3728501