【发布时间】:2018-05-31 13:38:41
【问题描述】:
我在一本技术书籍中找到了以下示例
struct {
tBoolean logON;
static enum eLogLevel outputLevel[NUM_LOG_SUBSYSTEM];
} sLogStruct;
static struct sLogStruct gLogData;
但我对 struct 声明的优点感到困惑,从形式上讲,它应该是
struct name {
...
}
事实上,我做了一些尝试,编译器在语句中出现错误(我真的尝试过使用标准类型,而不是像 sLogStruct 这样的东西)
static struct sLogStruct gLogData;
我的怀疑是对的,代码有问题吗?
此外,我想了解结构中 static 类存储的含义和范围,因为我没有找到任何令人满意的解释。让我们有一个这样的结构声明
struct myStruct {
int Foo;
static int sFoo;
} strA, strB;
strA 和 strB 是否有两个相互独立的静态变量?
【问题讨论】:
-
你不能在 C 中将结构成员声明为静态的。
-
看来这本书真的很烂。
-
你确定这本书使用的是 C 而不是 C++?
-
@Someprogrammerdude: Anonymous struct 保留用于在另一个未命名结构 中的情况。
-
@Acorn 为什么只为嵌套结构保留它们?您可以使用它在任何地方定义任何结构变量,就像任何其他变量一样。