今天,我对c 结构与c++ 结构 的行为感到有点惊讶。
fun.cpp: http://ideone.com/5VLPC
struct nod
{
static int i;
};
int main()
{
return 0;
}
上面的程序完美运行。
但是,
同样的程序在C环境下运行,报错:
prog.c:3: error: expected specifier-qualifier-list before ‘static’
为什么会这样?
最佳答案
因为在 C++ 中,结构只是具有默认可见性 public
的类。所以在 C 中,结构只是数据的聚合,它不知道它可以被视为独立类型这一事实。
关于c++ - c 结构不允许静态成员,而 c++ 允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11138899/