首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关结构体对象的赋值,该怎么解决

2012-05-05 
有关结构体对象的赋值struct Student{int s}a这里声明a为全局为什么不可以在函数体外边对a的成员进行赋

有关结构体对象的赋值
struct Student
{
 int s;
}a;
这里声明a为全局;
为什么不可以在函数体外边
对a的成员进行赋值?

viod fun(){a.s=0;}
却可以?
这问题困惑我好久了,自始至终都没找到答案;
谁解释一下啊;

[解决办法]
tricky question, but interesting.
原因在于语法限制,c++11 7.3.1 陈述 namespace (注意 global namespace 也是 namespace 的一种) 定义的语法,其中对于 namespace body 的语法定义为

C/C++ code
namespace-body:   declaration-seq[opt]
[解决办法]
如c,假设没命名空间.
那么 全局域中只允许初始化.
并且,不保证初始化的顺序.

热点排行