如何访问在另一个结构中定义的结构的成员?
假设我们有一个结构定义为:
struct FR {
size_t n;
struct FR_1{
unsigned char r;
unsigned char g;
unsigned char b;
};
};
Run Code Online (Sandbox Code Playgroud)
在2015年视觉工作室下,写作:
struct FR x;
x.FR_1.
Run Code Online (Sandbox Code Playgroud)
不显示FR_1成员的选项.另一方面,写作:
struct FR_1 y;
说: Error,incomplete type is not allowed.
你如何处理这种结构?
该示例声明了类型struct FR_1,而不是该类型的成员.相反,尝试:
struct FR {
size_t n;
struct FR_1 {
unsigned char r;
unsigned char g;
unsigned char b;
} fr1;
};
FR x;
x.fr1.r = 0;
Run Code Online (Sandbox Code Playgroud)
struct FR {
size_t n; // < Declaration of member variable
struct FR_1{ // < Declaration of nested type
unsigned char r;
unsigned char g;
unsigned char b;
};
FR_1 fr1; // < Declaration of member variable
};
Run Code Online (Sandbox Code Playgroud)
您需要FR_1在FR结构中声明该类型的变量,而不仅仅是类型本身。
FR fr;
fr.fr1.r = 0;
Run Code Online (Sandbox Code Playgroud)