#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进行类型重命名。

猜你喜欢

转载自blog.csdn.net/hansionz/article/details/81428941