我想定义以下结构和类型定义:
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
的范围与结构中的任何其他字段没有什么不同
- 是的。
- 是的。
- 范围与
A
相同。
为了避免混淆,为什么不这样做呢?
struct IO {
int VERBOS;
};
typedef struct Atype {
int A;
struct IO;
} Atype;