#include <iostream>
using namespace std;
typedef struct {
unsigned int i:3;
unsigned int j:5;
}str1;
typedef struct {
str1 s1[2];
}str2;
int main()
{
str2 s2 = {{{5,6},{7,8}}};
str1 s3[2] = {{1,2},{3,4}};
cout << s2.s1[1].i << endl;
cout << s3[1].i << endl;
return 0;
}
#include <iostream>
using namespace std;
typedef struct {
unsigned int i:3;
unsigned int j:5;
}str1;
typedef struct {
str1 s1[2];
}str2;
int main()
{
str2 s2 = {5,6,7,8};
str1 s3[2] = {{1,2},{3,4}};
cout << s2.s1[1].i << endl;
cout << s3[1].i << endl;
return 0;
}
由外到里的大括号分别是:结构str2,数组(成员s1[2]),结构str1.所以一个也不能少.但是结构定义也可按顺序依次初始化,所以只保留最外层也可,那样就是结构str2的大括号了~