enum 是 c 語言中的一種自定義類型
enum 值是可以根據需要自定義的整數值
預設情況下第一個定義的 enum 值為 0,其他的值是在前一個值的基礎上加 1
enum 類型的變量隻能取定義時的離散值
枚舉類型的特殊意義:
enum 中定義的值是 c 語言中真正意義上的常量,在工程中 enum 多用于定義整型常量,其值不能再修改。
下面通過一個例子來說明 enum 的使用
sizeof 是編譯器的内置訓示符,用于計算類型或者變量的所占的記憶體大小,sizeof 的值在編譯器就已經确定了。
文法如下:
以前使用 sizeof,感覺就像一個函數一樣,其實 sizeof 并不是函數,而是編譯器的内置訓示符,從 sizeof var 的用法也可以看出來,函數不能這麼使用
sizeof 是 c 語言的内置關鍵字而不是函數
在編譯過程中所有的 sizeof 将被具體的數值替換,函數的執行過程與 sizeof 沒有任何關系
下面通過一個例子來說明。
1、var 為 int 型的變量,是以大小為 4,為什麼列印的 var 的值為 0 呢?在編譯期,sizeof(var++) 已經被替換成了 4,var++根本沒有執行,是以 var 的值還是 4。 2、f() 傳回值為 int,是以 sizeof(f()) 為 4,為什麼沒有列印出 hello world! 呢, 還是因為 sizeof 是在編譯過程将用數值替換,函數的執行過程與 sizeof 沒有任何關系,是以 f() 函數不會執行。
想象一個場景:假設你在面試,考官:你能說說 typedef 的具體意義嗎?
下面就來說說 typedef 的意義
typedef 用于給一個已經存在的資料類型重命名
typedef 本質上不能産生新的類型
typedef 重命名的類型可以在 typedef 語句之後定義,且不能被 unsigned 和 signed 修飾
用法:typedef type new_name;
type 是已經有的資料類型,new_name 是該資料類型的别名
1、enum 用于定義離散值類型,enum 定義的值是真正意義上的常量
2、sizeof 是編譯器的内置訓示符,不參與程式的執行過程
3、typedef 用于給類型重命名,重命名的類型可以在 typedef 語句之後定義