1. 程式人生 > >#define和typedef哪一個型別重新命名更好一些

#define和typedef哪一個型別重新命名更好一些

#define型別重新命名

#define uint unsigned int

typedef型別重新命名

typedef unsigned int uint

區別:#define進行型別重新命名時新型別名字在前邊,而用typedef進行型別重新命名時,新型別名字在後邊

哪一個更好呢?

請看下面例子:

typedef int* pint
#define PINT int*
//a,b都為int*類型
pint a,b;
//預處理時替換為int* c,d;則c為int* 型別,而d為int型別
PINT c,d;

比較:使用typedef進行型別重新命名要比使用#define好一些,因為使用#define進行型別重新命名是在預處理時完成替換的,會產生如上例子的問題,所以推薦使用typedef進行型別重新命名。