【发布时间】:2012-05-10 07:55:02
【问题描述】:
我现在知道如何在全局范围内初始化结构。
以下是示例代码:
#include<GL/glut.h>
struct A
{
int x;
};
struct A a;
a.x=6;
int main()
{}
我在 Ubuntu 11.10 上,当我编译这个程序时,我收到以下错误:
error: ‘a’ does not name a type
我不知道为什么会发生这种情况。我想知道如何将复杂的参数传递给某个回调函数?
非常感谢
【问题讨论】:
-
尝试将作业移至主目录。包含 GL/glut.h 并没有什么特别之处 - 您观察到的错误与它无关。
-
非常感谢....您能解释一下为什么我们不能这样做吗?内存已经分配给对象a,为什么不能修改呢?例如如果我们在 main 之外声明一个 vector
M,我们可能会将几个元素 push_back 到 main 之外的 M 中。这两者有什么区别吗? -
@mitweyl:因为那时不会定义操作顺序。分配是在调用构造之前还是之后发生的(在 C++ 的情况下)。在全局范围内只允许静态初始化。
标签: c++ c struct initialization