#define和typedef的差别

如下的p1,p2,p3,p4有什么区别呢?

 

 

 

 

 

 

 

实际上p1,p2,p3均为char*类型指针,而p4成了char类型

编写了两个简短的小程序。

1.typedef

1 typedef char* CHAR_POINTER;
2 int main()
3 {
4     CHAR_POINTER p1,p2;
5     char c;
6     p1 = &c;
7     p2 = &c;
8 }

编译成功。

2.define

   1 #define CHAR_POINTER char*
   2 int main()
   3 {   
   4     CHAR_POINTER p1,p2;
   5     char c;
   6     p1 = &c;
   7     p2 = &c;
   8 }

用gcc编译有警告,g++编译错误,如下:

 

posted @ 2020-12-14 11:56  昆山皮皮虾  阅读(115)  评论(0编辑  收藏  举报