我们来看看typede和define的区别
define是C++中用来定义宏的,也就是宏定义用的,宏在代码中就是纯粹进行简单的替换,这个替换过程不是在C++的编译过程中进行的,而是在这之前的预处理过程中就已经完成了. 因为它不是在编译过程中进行,所以如果有潜在的错误,很难发现.
typedef 说白了,就是起别名,是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),它是C++语言编译过程的一部分,也就是说在编译过程中进行,但它并不实际分配内存空间。 它和宏定义不一样,并不只是简单的进行替换
我们来看一个例子,来证明typedef不是简单的进行宏替换:
typedef char* p
int myFunc(const p,const p); => 如果它和宏一样,只是简单的替换,那么这里就会变成 int myFunc(const char*,const char*);
但实际上并不是这样的,typedef char* p => p是一个char类型的指针的别名,const 修饰这个指针,就给予了整个指针本身以常量属性,所以就形成了常量指针 char* const => 所以它实际是 int myFunc(char* const,char* const);
牢记: 当const和typedef一起出现时,typedef不是简单的字符串替换就行
标签:typedef,const,C++,char,替换,define From: https://www.cnblogs.com/wphl-27/p/18008278