询问在enum和struct中的typedef的问题

whuyotc 2008-09-19 01:32:00
写了一个简单的程序

#include<iostream>
using namespace std;

typedef enum Ori
{
Sun=1,
Mon,
Tus,
Wen,
Thu,
Fri,
Sta
}Week; //我想请问 Ori与Week究竟有什么区别啊??怎么感觉好像用法是一样的啊 ???


typedef struct Ostr
{
int aa;
char bb;
}ST; //此处的Ostr与ST又是有什么区别啊???用法是不是一样的呢 ???




int main()
{
Week a=Mon;
Ori b=Mon;
if(a==b)
cout<<"a==b"<<endl;
else
cout<<"a!=b"<<endl;

Week c=(Week)1;
cout<<c<<endl;


Ori d=(Ori)1;
cout<<d<<endl;


Ostr s1={1,'q'};
ST z={2,'3'};

return 0;
}


我怎么觉得在enum与struct中使用typedef没有多大的用处呢??
有高人可以答疑一下么???
先谢过了啊


...全文
327 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不是吧?
我看书上 不是这么定义的。
我写的一段。

typedef struct //定义结构 book
{
int nID; //包含元素 ID 名字 作者
std::string sName;
std::string sWriter;
}BOOK;

然后在定义其中一本书就很简单啦。

BOOK book1;

book1 就是之前我定义的那个结构了。

不知道我说的对不对,我也是初学。


还有,我定义完了,然后把元素(ID NAME WRITER)都丰富了。

怎么按我定义的结构输出呢??我就不会了,呵呵。




说的不一定对,等明白人讲两句~
就呆在云上 2008-09-19
  • 打赏
  • 举报
回复
你这么用的是c++,要不要typedef就没有多大关系了
但是c语言里面就不是这么一回事了,c语言里面定义一个对应的变量都要带上struct或者enum标志的,c++里面可以省掉的,因此c里面用typedef之后就省掉了这个过程
whuyotc 2008-09-19
  • 打赏
  • 举报
回复
哦,
这个利用typedef生成了一个结构体指针类型MyNode

下次要产生结构体指针直接 使用 MyNode XXX ;
就可以了,

不知道可不可以这样理解啊??





[Quote=引用 3 楼 hqin6 的回复:]
晕~~~~



C/C++ code

typedef struct Node
{}*MyNode;

MyNode mn = (struct Node*)malloc(sizeof(struct Node));





[/Quote]
whuyotc 2008-09-19
  • 打赏
  • 举报
回复

原来是这样啊,怪不得c++书上讲typedef的地方不多啊
谢谢您啊




[Quote=引用 2 楼 anglecloudy 的回复:]
以后所有问题都是一个问题

在C里面如果定义了一个结构体或类struct A那么如果我想用它生成一个实例,则必需用下面的形式:
struct A test;
这样typedef就有了用武的地方了
如果typedef struct A AA;
那我定义一个test就可以直接用
AA test;了


而在现在新的C++标准里面,直接用A a;也可以,所以你基本上也就看不出它们有什么不一样了。
[/Quote]
太乙 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 whuyotc 的帖子:]
写了一个简单的程序

#include <iostream>
using namespace std;

typedef enum Ori
{
Sun=1,
Mon,
Tus,
Wen,
Thu,
Fri,
Sta
}Week; //我想请问 Ori与Week究竟有什么区别啊??怎么感觉好像用法是一样的啊 ???


typedef struct Ostr
{
int aa;
char bb;
}ST; //此处的Ostr与ST又是有什么区别啊???用法是不是一样的呢 ???


int main()
{
Week a=Mon;
Ori b…
[/Quote]

晕~~~~




typedef struct Node
{}*MyNode;

MyNode mn = (struct Node*)malloc(sizeof(struct Node));



OenAuth.Core 2008-09-19
  • 打赏
  • 举报
回复
以后所有问题都是一个问题

在C里面如果定义了一个结构体或类struct A那么如果我想用它生成一个实例,则必需用下面的形式:
struct A test;
这样typedef就有了用武的地方了
如果typedef struct A AA;
那我定义一个test就可以直接用
AA test;了


而在现在新的C++标准里面,直接用A a;也可以,所以你基本上也就看不出它们有什么不一样了。
taodm 2008-09-19
  • 打赏
  • 举报
回复
别把C语言的简陋带入C++

64,660

社区成员

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

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