開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
MinGW
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
請問一下,我寫了一個enum, 裡面有3個變數都沒有給初始值,所以第一個變數應該是0才
對。
然後我宣告了一個enum變數,給值-1,但是我用printf引出來發現此變數的值變成255
請問這跟compiler有關嗎? 有辦法避免嗎? 感謝
餵入的資料(Input):
Enum test = -1
預期的正確結果(Expected Output):
test = -1
錯誤結果(Wrong Output):
test == 255
程式碼(Code):(請善用置底文網頁, 記得排版)
enum = -1;
if ( enum != -1)
........
補充說明(Supplement):
因為把enum設成-1,所以以為不會進下面的判斷式,但結果卻進去了,把值印出來看發現
變成255
作者:
LPH66 (-6.2598534e+18f)
2016-06-26 19:29:00原 PO 貼個程式吧, enum 的預設底層型態是 int 是能為負的不過一個 enum 給定範圍外的值會如何是 unspecified所以可能需要加一個 enum 成員其值為 -1(話說回來, 這基本上就是個「以上皆非」的選項,既然是選項寫入 enum 也是應該的)