【发布时间】:2015-02-06 17:09:27
【问题描述】:
这是一个示例代码,声明了结构 A,然后在 main 中定义了它的实例“instanceOfA”,因此它成为局部变量,并且要在其他函数中访问它,我应该将它作为参数传递。另一方面,struct B 被声明并且它的实例被定义为全局变量,它允许我在任何需要它的地方使用“instanceOfB”,而不是直接将它作为参数传递。我现在唯一应该担心的是某些函数可能会覆盖“instanceOfA”标识符,对吗?因为它的变量(a,b,c)已经在它自己的“命名空间”中。那么将结构对象定义为全局变量是一种不好的做法吗?你会怎么办? 对不起我的英语不好。
struct A {
int a,b,c;
};
struct B {
int a,b,c;
} instanceOfB;
int main(void) {
struct A instanceOfA;
instanceOfA.a = 5;
instanceOfB.a = 10;
}
【问题讨论】:
-
C 没有命名空间。 C++ 做
-
对。我的意思是全局变量和局部变量。我会编辑那个。谢谢。
-
旁注:标题中的
define不恰当;请改用declare或instantiate。 -
作为一般准则,尽可能避免全局空间中的对象。
-
每种语言都有命名空间。大多数只是很少,并且没有对它们提供太多控制。
标签: c struct declaration