#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}}}; // str2 s2 = {5, 6, 7, 8}; is also OK
str1 s3[2] = {{1,2},{3,4}};
cout << s2.s1[1].i << endl;
cout << s3[1].i << endl;
return 0;
}
|
注意斜体那行, 似乎多了一对大括号, 实际上, 如果把多的那对大括号去掉, 编译将不能通过. 实际上, 如果只保留最外层的括号, 编译也可以通过. 不知道为什么.
编译环境: winxp, cygwin, gcc 3.4.4(cygming special, gdc 0.12, using dmd 0.125)
阅读(1232) | 评论(2) | 转发(0) |