鱼C论坛

 找回密码
 立即注册
查看: 4719|回复: 5

typedef在结构体中的用法

[复制链接]
发表于 2013-3-10 10:19:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如果在c程序中我们写:
typedef struct
{
int num;
int age;
}aaa,bbb,ccc;
这算什么呢?
我个人观察编译器(VC6)的理解,这相当于
typedef struct
{
int num;
int age;
}aaa;
typedef aaa bbb;
typedef aaa ccc;
也就是说aaa,bbb,ccc三者都是结构体类型。声明变量时用任何一个都可以,在c++中也是如此。但是你要注意的是这个在c++中如果写掉了typedef关键字,那么aaa,bbb,ccc将是截然不同的三个对象。


以上是在网上找到的相关资料!


关于aaa,bbb,ccc   是否说该结构的别名为aaa,bbb,ccc三种都可以!?(可能个人理解错)
但为什么在程序中 如:
#include <stdio.h>
typedef struct
{
  int num;
  int age;
}aaa,bbb,ccc;
void main()
{
  aaa a;
  a.num = 10;

  bbb b;
  b.num = 11;
}
为什么用过aaa后  就不能用bbb了?   先用bbb后  aaa就不能用了!?

大神们!   求解!   


                谢过先!


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-10 10:24:54 | 显示全部楼层
没有错误。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-10 13:12:15 | 显示全部楼层
本帖最后由 404326860 于 2013-3-10 13:16 编辑

--------------------Configuration: typedef - Win32 Debug--------------------
Compiling...
typedef.c
c:\users\administrator\desktop\typedef.c(12) : error C2275: 'bbb' : illegal use of this type as an expression
        c:\users\administrator\desktop\typedef.c(6) : see declaration of 'bbb'
c:\users\administrator\desktop\typedef.c(12) : error C2146: syntax error : missing ';' before identifier 'b'
c:\users\administrator\desktop\typedef.c(12) : error C2065: 'b' : undeclared identifier
c:\users\administrator\desktop\typedef.c(13) : error C2224: left of '.num' must have struct/union type
执行 cl.exe 时出错.

typedef.exe - 1 error(s), 0 warning(s)


提示这个!  求解!  谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-11 13:56:46 | 显示全部楼层
目测是编译器支持的标准比较古老的
你可以是试试看
#include <stdio.h>
typedef struct
{
  int num;
  int age;
}aaa,bbb,ccc;
void main()
{
  aaa a;
  bbb b;//先定义

  a.num = 10;
  b.num = 11;
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-11 17:00:38 | 显示全部楼层

我的编译器是vs2008的,在c语言的情况下,出现类似错误。c++确实可以。是不是c必须在开头定义变量。我在网上查了,也没发现有肯定的说法。不过随用随定义是个好习惯。。方便~~~~
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-11 19:20:43 | 显示全部楼层
谢谢拉!
   我用VC6.0的!   超晕!   还要先定义才行!- -!  不能随定义!  

            败在这里!   

我是师兄!    非常感谢你!
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-6 11:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表