在這裏,您分配一個dram_controller_maximum
到10,這只是意味着,每次你寫 something = dram_controller_maximum
,你的意思是something = 10
:
enum DRAM_Controller { dram_controller_maximum = 10};
對於下面的功能,如果你傳遞一個數字,它只會打印它。如果你通過一個DRAM_Controller
變量,它會評估它的值(記住一個數字)並打印出來。
void myprint(DRAM_Controller dct)
{
printf("dct value is: %d\n", dct);
}
下面的行只是變換整數(0
)至DRAM_Controller
。這條線本身是沒用的:
DRAM_Controller(0); //**--> What is the meaing of this**
接下來的三行將打印dram_controller_maximum
值轉換爲int。請記住,在我們說這是等於10開始,因此這將只打印10.所有的三條線做同樣的事情:他們試圖解釋DRAM_Controller型值作爲int和打印:
printf("value is : %d\n", dram_controller_maximum);
printf("value is : %d\n", DRAM_Controller(1));
myprint(DRAM_Controller(0));
基本上,enum
只是int
秒的一束具有「名稱」:
ç暴露枚舉值的整數表示直接 程序員。整數和枚舉值可以自由混合,並且所有枚舉值的算術運算都是允許的。它甚至 可能枚舉變量來保存不 的整數表示任何枚舉值的。實際上,根據 的語言定義,上面的代碼將定義CLUBS,DIAMONDS, HEARTS和SPADES作爲int類型的常量,如果將它們存儲在變量 中,那麼只會將 轉換(靜默)爲enum cardsuit這種類型的
和
C++有直接從C'S和 工作大多喜歡這些繼承,但枚舉是 C++真正的類型枚舉類型,提供額外的編譯時間檢查。
from wiki.
謝謝你這麼多的解釋。我知道鑄造的東西是:(unsigned int *)0xAABBCCDD;但沒有遇到這樣的事情。是什麼特定於C++ – user1554526 2012-07-27 04:39:25
好吧,找到答案:http://stackoverflow.com/questions/32168/c-cast-syntax-styles – user1554526 2012-07-27 04:45:23