急!!全局变量的定义问题

The_eagles 2008-11-09 01:57:22

请大家帮我看一下这个错误的原因,如何解决:

// MyApp.cpp
...

CMyApp theApp;

// 在此处定义全局变量
struct C
{
int x;
int y;
};

C c;
c.x =0;


error C2143: syntax error : missing ';' before '.' // 说的是 c.x =0; 这一行
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

...全文
108 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
The_eagles 2008-11-09
  • 打赏
  • 举报
回复


struct C
{
int x;
int y;
};
void main()
{
C a;//若源文件为.c文件,则次写法错误,须写成struct C a;
//若源文件为.cpp文件,则可编译成功
a.x =0;
}


----------------------------------------------
// 赞~
luogailong 2008-11-09
  • 打赏
  • 举报
回复
struct C
{
int x;
int y;
};
void main()
{
C a;//若源文件为.c文件,则次写法错误,须写成struct C a;
//若源文件为.cpp文件,则可编译成功
a.x =0;
}
The_eagles 2008-11-09
  • 打赏
  • 举报
回复
咱比较穷啊,就这点分,呵呵。
看各位的头像,好像很熟悉啊。
The_eagles 2008-11-09
  • 打赏
  • 举报
回复
是我弄错了,全局作用域不能赋值。多谢各位!

另外,在使用的地方前面需要加上:

extern struct C
{
int x;
int y;
} c;

//而不是:
extern C c;


Laura_li 2008-11-09
  • 打赏
  • 举报
回复
就是,全局变量一般都是在使用的时候赋值的!
P_ghost 2008-11-09
  • 打赏
  • 举报
回复
看你的程序特点。
应该是窗口程序。
那么就在初始化程序实例的那个地方进行赋值操作吧。可以把你的对象定义为全局的,注意一点就是了,就是全局中只能初始化,不可以赋值。
xhs_lh04 2008-11-09
  • 打赏
  • 举报
回复
C.x的赋值要放在函数里
函数外只有能变量定义(包括初始化)但不能有赋值语句
P_ghost 2008-11-09
  • 打赏
  • 举报
回复
全局域里只能声明和定义
P_ghost 2008-11-09
  • 打赏
  • 举报
回复
你使用的地方错啦!!!!
AbnormalSubmarine 2008-11-09
  • 打赏
  • 举报
回复
结构体的赋值最好写在,主函数的调用里,或者在其它函数的调用里

在C代码中入过写在全局,按照你的做法好像要出错
The_eagles 2008-11-09
  • 打赏
  • 举报
回复


我要实现的是在程序开始运行时,就创建一个std::vector<C> vec_c;
然后要首先push_back 10个元素,且要为这十个元素赋初值。
The_eagles 2008-11-09
  • 打赏
  • 举报
回复
用的是C++。

如果写成这样:

typedef struct
{
int x;
int y;
}C;

C c;
c.x =0;


或者

typedef struct
{
int x;
int y;
}C;

C c;
c.x =0;


还是同样的错误。
glacier3d 2008-11-09
  • 打赏
  • 举报
回复
貌似这是c里才应该有的错误,可看你用的好像是c++
一般c里面要在C前加struct
帅得不敢出门 2008-11-09
  • 打赏
  • 举报
回复
struct C c;试试 可能是编译器的缘故
wiler 2008-11-09
  • 打赏
  • 举报
回复
应该是不能在这里赋值
wuyu637 2008-11-09
  • 打赏
  • 举报
回复
struct C
{
int x;
int y;
};

C c;
c.x =0;

==============》
typedef struct
{
int x;
int y;
}C;

C c;
c.x =0;

或者
struct C
{
int x;
int y;
};

struct C c;
c.x =0;

65,211

社区成员

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

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