自定义结构时,用typedef和不使用有什么区别?我觉得不用好像也行

symbol_bc 2008-04-14 09:59:00
自定义结构时,用typedef和不使用有什么区别?我觉得不用好像也行
...全文
165 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
icosagon 2008-04-16
  • 打赏
  • 举报
回复
主要用来定义指针类型的变量的
MagiSu 2008-04-16
  • 打赏
  • 举报
回复
typedef struct A {} B;

A是一个tag,如果是C的话就必须按照struct A使用。C++则不必。
B是一个type,也就是直接的一个类型。
liveforme 2008-04-16
  • 打赏
  • 举报
回复
学习学习
ytfrdfiw 2008-04-16
  • 打赏
  • 举报
回复
在C++里面,不用typedef struct MyStruc{} OtherStruct;
加上这个typedef是个多余,这是C的写法。
WuBill 2008-04-16
  • 打赏
  • 举报
回复
所以在C++的结构这点上,基本不存在取别名,直接把你所希望的别名作为结构名就行了
WuBill 2008-04-16
  • 打赏
  • 举报
回复
在定义结构这点上,主要是为了和C一致
C中:
struct Test{
int a;
};
这时,如果要定义Test对象,就必须是:struct Test t;
如果写成
typedef struct tagTest{
int a;
}Test;
就可以是直接写 Test t;

在C++中,实际上struct几乎可以说是多余的,只是为了和C一致才留了下来
C++,struct和class除了默认访问属性不同外,其他完全一样
在C++中:
struct Test{
int a;
};
就可以直接写Test t;

在C++中class 和struct实际就是名字游戏,留下struct只为了让C程序员更易接受
不想低调 2008-04-14
  • 打赏
  • 举报
回复
lz说的没错 就是给结构取个别名
薛定谔之死猫 2008-04-14
  • 打赏
  • 举报
回复
typedef用来生成alias,像宏一样,可以简化输入
ppzzhhsky 2008-04-14
  • 打赏
  • 举报
回复
只是一种习惯
便于阅读程序的人方便
Treazy 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 symbol_bc 的帖子:]
自定义结构时,用typedef和不使用有什么区别?我觉得不用好像也行
[/Quote]

方便:可以自定义类型名
能简化复杂类型
实用
OenAuth.Core 2008-04-14
  • 打赏
  • 举报
回复
这个作用是很强大的,功能简单点说就是给结构体和类起一个别名,比如定义一个结构体或类时:
struct test{
int a;
};
那么你要使用时就必须用下面的格式:
struct test a;

如果你用下面这样定义:
typedef struct test{
int a;
} test;
就可以这样使用 :
test a;

不过现在新版的c++不用TYPEDEF也可以直接用类类名来实现类,不过作为养成良好的编程习惯来说,建议还是加上typedef比较好

langhua0001 2008-04-14
  • 打赏
  • 举报
回复
就是为了方便才用的
wuyu637 2008-04-14
  • 打赏
  • 举报
回复
的确是没有什么区别。不过就是如果你使用了typedef的话,会方便一点。。

struct A{};


struct A a;

==============================

typedef struct B{};

B b;

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧