C - 有效 C 中的结构?- 有效的C ++?-范围

  • 本文关键字:有效 范围 结构 c struct
  • 更新时间 :
  • 英文 :


我想定义以下结构和类型定义:

typedef struct Atype
{
  int A;
  struct
  {
    int VERBOS;
  }
  IO;
}
Atype;

在 main 中,我可以将变量定义为:

Atype In1,In2;
In1.A=3;
In1.IO.VERBOS=4;
In2.IO=In1.IO;

等。

代码编译并运行(c - gcc-clang),但我必须为不同的环境编写。我的问题:

1) 这些没有名称的嵌套结构是否有效 c?

2) 有效的 C++?

3) IO的范围是什么?

这是 C/C++ 中的有效结构,它被称为未命名结构。 这是来自GCC的页面,其中包含对它的引用

http://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html

IO的范围与结构中的任何其他字段没有什么不同

  1. 是的。
  2. 是的。
  3. 范围与A相同。

为了避免混淆,为什么不这样做呢?

struct IO {
    int VERBOS;
};
typedef struct Atype {
  int A;
  struct IO;
} Atype;

最新更新