当前位置: 代码迷 >> C语言 >> [求助]以语言的不明白地方typedef
  详细解决方案

[求助]以语言的不明白地方typedef

热度:240   发布时间:2006-05-20 14:00:00.0
[求助]以语言的不明白地方typedef

我要定义一个结构例如

typedef struce node
{

char data;
int curlen;
};
最前的的typedef是为什么要加上,如果不要效果差在什么地方
typedef struce node string;
struce nodes string;
定义结构变量的时间加上和不加有什么效果差别?

搜索更多相关的解决方案: typedef  语言  

----------------解决方案--------------------------------------------------------
typedef struce node
{
char data;
int curlen;
}; 这用法不存在,没任何必要

typedef struce node
{
char data;
int curlen;
}string; 存在的,给新定义的结构体起了个别名 string


----------------解决方案--------------------------------------------------------

typedef struce node
{
char data;
int curlen;
}string; 存在的,给新定义的结构体起了个别名 string

原来是起了一个别名?!~~
那么也就是说:
string s == struct node s


----------------解决方案--------------------------------------------------------

对了

但和下面这个分开

struce node
{
char data;
int curlen;
}string;

定义了一个struce node型变量string


----------------解决方案--------------------------------------------------------

谢谢老大!~~~~~
----------------解决方案--------------------------------------------------------

我又有新的想法了,那如果
typedef struce node
{
char data;
int curlen;
}string;

我紧跟在string后面可以定义一变里可否?
typedef struce node
{
char data;
int curlen;
}string s;
定义一个s的结构体?

----------------解决方案--------------------------------------------------------
以下是引用bob7789在2006-5-20 14:25:00的发言:

我又有新的想法了,那如果
typedef struce node
{
char data;
int curlen;
}string;

我紧跟在string后面可以定义一变里可否?
typedef struce node
{
char data;
int curlen;
}string s;
定义一个s的结构体?

不可以。typedef只提供对其起另外一个名字,通常是为起一个比较短而有意义的名字,但有如下规则:
1.不能在起外号的同时声明变量;
2.在起外号的同时外号必须是一个紧凑的字符串,举个例子:不能把别名取成 no de.只能为node紧凑在一起。

----------------解决方案--------------------------------------------------------
谢谢,指点!~~努力学习!~~
----------------解决方案--------------------------------------------------------