#define与typedef区别

做~自己de王妃 提交于 2020-01-28 00:35:11

1.#define常用它来定义常量(包括无参量与带参量),属于预处理过程(编译之前),例,#define Name   int

 

2.typedef常用来定义一个标识符及关键字的别名,属于编译过程,实际不分配内存空间,例,typedef  int  Name

 

3.#difine不进行类型检查,只是简单地字符替换,易出错;

    typedef具有一定的封装性,不易出错;

 

 1 #include <iostream>
 2 #include <stdio.h>
 3 using namespace std;
 4 #define  Name  3+3
 5 
 6 int main()
 7 {
 8     int m;
 9     int a=6;
10     m=Name*a;
11     cout<<m<<endl;
12     return 0;
13 
14 }
View Code

结果m=21;因为: m=Name*a=3+3*6=3+18=21;

 

4.          typedef   struct   Node 
             { 
                    int   x; 
              }node1,node2; 

在C中,struct   Node =node1=node2 ,为结构体名;

在C++中,struct   Node =Node=node1=node2 ,为结构体名;

 

5.          struct   Node 
              { 
                    int   x; 
              }node1,node2;

在C中,可能编译不通过,一般用typedef

在C++中,struct   Node =Node,为结构体名;node1node2均为Node类型的对象;

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!