C++ C+中的结构中的结构+;

C++ C+中的结构中的结构+;,c++,struct,C++,Struct,如何访问在另一个结构中定义的结构的成员? 假设我们有一个结构定义为: struct FR { size_t n; struct FR_1{ unsigned char r; unsigned char g; unsigned char b; }; }; 在visual studio 2015下,编写: struct FR x; x.FR_1. 不显示FR_1成员的选项。另一方面,写入: struct FR

如何访问在另一个结构中定义的结构的成员?
假设我们有一个结构定义为:

struct FR {
    size_t n;
    struct FR_1{
        unsigned char r;
        unsigned char g;
        unsigned char b;
    };
};
在visual studio 2015下,编写:

    struct FR x;
    x.FR_1.
不显示FR_1成员的选项。另一方面,写入:

struct FR_1 y
说明:
错误,不允许输入不完整。


如何处理这种结构?

示例声明的是类型
struct FR\u 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;

您需要实际创建结构的实例。下面是一个普通的
结构
声明

struct struct-name {
    members
} inst;
所以你需要把它声明为

struct FR {
    size_t n;

    struct FR_1 {
        unsigned char r;
        unsigned char g;
        unsigned char b;
    } fr1;
};
现在你可以写作了

FR fr;
fr.fr1.r = 255;
. . .

您定义了一个内部结构,但没有该类型的成员。您需要将其声明为FR::FR_1,您知道这在每个。也许你应该买一个,学习这门语言。
struct FR {
    size_t n;

    struct FR_1 {
        unsigned char r;
        unsigned char g;
        unsigned char b;
    } fr1;
};
FR fr;
fr.fr1.r = 255;
. . .