1. 程式人生 > >你是否恰當地使用了列舉------強烈建議對列舉進行顯式賦值

你是否恰當地使用了列舉------強烈建議對列舉進行顯式賦值

      列舉看似簡單, 但真正能用好的人並不多。 我在很多專案中看到了列舉的一些令人詬病的用法, 有時候, 不正確地使用列舉, 讓人心煩意亂, 經常產生一些“值移位”等重大問題, 需要定位較長時間。

      看看教科書般的業餘用法:

enum
{
	Red,
	Black,
	Green,
	Blue,
	White,
};
       這種用法的弊端在於, 當列舉多了後, 不能很快地看出White的值是多少, 那有的人這麼搞:
enum
{
	Red=0,
	Black,
	Green=2,
	Blue,
	White=4,
};
       這種間隔N個進行賦值, 還是不能徹底解決問題, 且怕被人插。 那有的人這麼搞:
enum
{
	Red,   // 0
	Black, // 1
	Green, // 2
	Blue,  // 3
	White, // 4
};
       這麼多麼垃圾的用法啊, 萬一別人在列舉中插入一個值, 那麼上面所有的註釋都會起誤導作用。 還是這麼寫吧:
enum
{
	Red=0,
	Black=1,
	Green=2,
	Blue=3,
	White=4,
};
       對列舉進行顯式, 這樣, 每個值很清晰, 也不怕被人插了。

      
       OK, 雖然簡單, 但要注意。