第7課-enum和typedef分析spa
- 枚舉類型的使用方法
(1) enum是一種自定義類型。指針
(2) enum默認常量在前一個值的基礎上一次加1。字符串
(3) enum類型的變量只能取定義時的離散值。編譯
enum Colorclass
{基礎
GREEN, //默認第一個的值是0變量
RED = 2, 擴展
BLUE //默認是前一個數值的基礎上加一數據類型
};方法
enum Color c = GREEN;
printf(「%d\n」,c); //0
這裏時不能取地址的,常量是不用分配空間,取地址的。編譯時,會進入符號表。
- 枚舉類型和#define的區別
(1) #define宏常量只是簡單的進行值替換,枚舉常量是真正意義上的常量。
(2) #define宏常量沒法被調用,枚舉常量能夠。
(3) #define宏常量無類型信息,枚舉常量是一種特定類型的常量。
- typedef的意義
(1) typedef用於給一個已經存在的數據類型重命名。
(2) typedef並無產生新的類型。
(3) typedef重定義的類型不能進行unsigned和signed擴展。
- typedef和#define的區別
(1) typedef是給已有的類型取別名。
(2) #define爲簡單的字符串替換,無別名的概念。
思考:
咱們如今比較下面2個語句的區別:
tppedef char* PCHAR
PCHAR p1, p2
//p1, p2是char*類型的指針。
#define PCHAR char*
PCHAR p3, p4
//p3是char*類型的指針,p4是個char類型。