永发信息网

c++中的typedef关键字有什么作用?

答案:6  悬赏:60  手机版
解决时间 2021-03-15 18:35
  • 提问者网友:人傍凄凉立暮秋
  • 2021-03-15 06:57
c++中的typedef关键字有什么作用?
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-03-15 07:54
在 C 语言中 typedef 用来定义 已知类型 的别名,本质上和原来的类型是一样的,不过 这可以提高程序的阅读性, 更 方便程序移植等等,比如
typedef float Money ;
Money myMoney;
这个Money 其实是 float 的别名,本质上就是 float 。如果要修改 Money 的真实类型,只需将 float 替换掉就可以啦, 比如你觉得Money 精度不够,要替换成更高精度的类型, 把 Money 替换成 double 型,只需
typedef double Money ;
Money myMoney;
如果 你没有用 typedef 的话,再每个用到 float 的地方都得替换成 double ,这是非常麻烦的。

总而言之, typedef 的机制还是比较简单的,不过 在C语言中,注意一下名称重定义的情况就可以啦(C++不会有这种情况)。
全部回答
  • 1楼网友:痴妹与他
  • 2021-03-15 11:05
可以给结构体起一个别的名字 typedef struct student {……} stu; 就是stu是student的另一个名字
  • 2楼网友:西风乍起
  • 2021-03-15 10:37
楼主的程序两个错误,包括编译错误和运行错误。 1、定义变量name的方法。程序中使用了变量name,却没有定义。而指令 typedef char[10] name; name month[12]; 是不能定义变量name的。正确的方法为: std::string name[12]; 2、所有使用到数组下标的地方,存在下标越界的问题,将会在程序运行时报错的。比如: for(int k=1;k<=12;k++) 建议修改为 for(int k=0;k<12;k++) 同理,指令 for(int u=1;u<=12;u++)和for(int o=1;o<=12;o++)也要做相应的修改。
  • 3楼网友:由着我着迷
  • 2021-03-15 10:13
定义类型,比如 typedef int myint 然后就可以把myint当作int用。 最普遍的用法是定义结构体类型 typedef struct Student { int a; } Stu; 然后直接用Stu stu1就能定义这个结构体类型。如果普通的做法: struct Student{ int a; }; 这样的话,必须声明其为 struct Student stu1; 然后才能把stu1当作这个结构体类型用
  • 4楼网友:由着我着迷
  • 2021-03-15 09:48
我来总结一下: 1.定义新的类型,便于跨平台 typedef int INT 2.c语言中有定义结构体 typedef struct Student { int a; } Stu; 但c++其实不用这么写 3.定义函数指针,方便。 typedef int (*PFUNC)(int a, int b); //定义了一个PFUNC的函数指针 如果有函数定义为int add(int a,int b); PFUNC = &add; PFUNC(a, b); //相当于调用add函数 4.隐藏数组的维数,也是为了代码的美观吧 typedef char[200] CHARARR; CHARARR str; //str是个200字节大小的字符数组 我所知道的差不多就这些。
  • 5楼网友:患得患失的劫
  • 2021-03-15 08:12
就是type和define的合称,类型定义.主要是用来定义一个类型的.简单点说 typedef unsigned int num; 这样以后使用num i=22;就相当于使用了unsigned int i=22;作用是方便程序的阅读和读写. 另外像. typedef struct poin { }poin2; 这样以来,poin2和poin是一样的.而如果不加typedef那么这里的poin2就是一个poin的实例. 再有 typedef void(*fp)(int,int); 以后使用fp相当于直接定义一个没有返回值带两个int参数的函数指针. 比如 void func(int x,int y).... fp p2=func; 而不须要 void(*p2)(int,int); p2=func; 省了很长的申请函数指针的代表. 总归简单一句话,就是用来把复杂的定义简化.把有特性的类型定义成比较容易记的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯