2 tfboy12121560 tfboy12121560 于 2016.04.21 03:41 提问

c结构体问题,无法识别? 5C

我在a.h文件下面书写了结构体
struct wt{
int a;
int b;
};
struct wt stu;
在b.c文件下面
#include“a.h”
wt stu;
void nihao(){
stu.a=1;
}
结构体是一个全局变量结构体为什么b.c文件会显示说 wt 无法识别,stu也是无法识别?

4个回答

caozhy
caozhy   Ds   Rxr 2016.04.21 06:07
 struct wt{
int a;
int b;
}; //你写成全角了
struct wt stu;
//wt stu; 这个不需要
void nihao(){
stu.a=1;
}
int main()
{
return 0;
}
caozhy
caozhy 回复tfboy12121560: include其实就是简单的文本替换,所以,写在一个文件中如果能行,你把其中一部分提取出来写在另一个文件中,在这个文件的这个位置用include代替,也一定可以。
一年多之前 回复
tfboy12121560
tfboy12121560 Main函数在其它.c文件,这个怎么感觉是一个文件a
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.21 14:13

主要的错误就是全角符号和定义的结构体变量有问题
楼主是想在别的.c文件里用这个wt全局的结构体变量是吧
一般我们把全局的变量都定义在.c文件中,在头文件可以加上extern关键字,这样包含该头文件的.c文件都可以使用wt变量了
.h文件改为:

struct wt{
int a;
int b;
};
extern struct wt stu;
beifengche
beifengche   2016.04.21 14:16

C语言的结构体定义变量时应该加上struct

qq_21570267
qq_21570267   2016.04.23 12:00

你把c文件改为cpp文件就好

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!