vc++6.0中,定义的结构体不能识别?

#include<stdio.h>

main()
{
typedef struct a
{
char data[10];
int data_len;
};

a b;
}

error C2065: 'a' : undeclared identifier

第1个回答  2012-11-21
typedef 用的不对,这样写:

typedef struct tag_a
{
char data[10];
int data_len;
} a;追问

为什么呢?求解释

追答

这有什么好解释的,typedef的语法就是这样的。
就相当于 typedef struct tag_a a; 把a定义为一种类型,它代表刚创建的struct。

本回答被网友采纳
第2个回答  2012-11-21
兄弟, 你的编译器 有问题吧, 我测试了一下, 这个程序 能正常 输出 5啊
#include<stdio.h>
main()
{
typedef struct a
{
char data[10];
int data_len;
};
a b;
b.data_len = 5;
printf("%d",b.data_len);

return 0;}追问

按照一楼的回答 定义成带_ 就能识别了

追答

我 把 你的程序 在我的 VC++ 6.0上跑, 没有错的。

第3个回答  2012-11-21
#include<stdio.h>

main()
{
struct aa
{
char data[10];
int data_len;
};
typedef struct aa a;

a b;
}
或者
#include<stdio.h>

main()
{
typedef struct
{
char data[10];
int data_len;
}a;

a b;
}
第4个回答  2012-11-21
#include<stdio.h>
typedef struct a
{
char data[10];
int data_len;
};

main()
{

a b;
}追问

这样也不行啊,是不是我编译器的问题啊

相似回答