C ++ 0x представляет enum class
, который делает именно то, что вы хотите:
enum class myEnum { A, B, C };
myEnum en = myEnum::A;
В C я бы, вероятно, использовал старый добрый префикс:
enum myEnum { myEnum_A, myEnum_B, myEnum_C };
myEnum en = myEnum_A;