home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2000 December / VPR0012A.BIN / OLS / CMKT111 / cmkt111.lzh / Cmachine / sample / init.c < prev    next >
C/C++ Source or Header  |  2000-09-24  |  3KB  |  100 lines

  1.  
  2. /*
  3.  * C machine サンプル ~ 初期化子
  4.  *
  5.  * 「複雑な初期化宣言子」
  6.  *
  7.  */
  8.  
  9. #include <stdio.h>
  10.  
  11. struct tab1 {
  12.     int a;
  13.     struct {
  14.         char a[2][5];
  15.     } b[3];
  16.     struct {
  17.         struct {
  18.             int a;
  19.         } a[3];
  20.     } c;
  21.     char d[10];
  22. };
  23.  
  24. typedef int ARRAY[2][3][4];
  25.  
  26. int main(void)
  27. {
  28.                     // 集合体通りに対応した{}全てあり
  29.     struct tab1 a = {1, {{{"abc","def"}},{{"ghi","jkl"}},{{"mno","pqr"}}},
  30.                      {{{2},{3},{4}}}, "stu" };
  31.  
  32.                     // 内部集合体には対応した{}まったくなし
  33.     struct tab1 b = {1, "abc","def", "ghi","jkl", "mno","pqr",
  34.                      2, 3, 4, "stu" };
  35.  
  36.                     // 集合体通りに対応した{}一部あり
  37.     struct tab1 c = {1, {"abc","def", "ghi","jkl", "mno","pqr"},
  38.                      2, {3}, {4}, "stu" };
  39.  
  40.                     // 集合体に対応していない{}あり
  41.     struct tab1 d = {1, {"abc",{"def", "ghi"},"jkl", {"mno","pqr"}},
  42.                      {2, {3, 4}}, "stu" };
  43.  
  44.               // 集合体通りに対応した{}全てあり
  45.     ARRAY e = {{{1,2,3,4},{5,6,7,8},{9,10,11,12}}, {{13,14,15,16},{17,18,19,20},{21,22,23,24}}};
  46.               // 内部集合体には対応した{}まったくなし
  47.     ARRAY f = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};
  48.               // 集合体通りに対応した{}一部あり
  49.     ARRAY g = {1,2,3,4,{5,6,7,8},9,10,11,12,{13,14,15,16,{17,18,19,20},21,22,23,24}};
  50.               // 集合体に対応していない{}あり
  51.     ARRAY h = {1,2,3,4,{5,{6,7},8},9,{10,11},12,{13,14,15,16,{17,18,19,20},21,22},23,24};
  52.     short i,j,k;
  53.  
  54.     printf("%d 00:%s 01:%s 10:%s 11:%s 20:%s 21:%s 0:%d 1:%d 2:%d %s\n",
  55.             a.a, a.b[0].a[0], a.b[0].a[1], a.b[1].a[0], a.b[1].a[1],
  56.             a.b[2].a[0], a.b[2].a[1], a.c.a[0].a, a.c.a[1].a,
  57.             a.c.a[2].a, a.d);
  58.  
  59.     printf("%d 00:%s 01:%s 10:%s 11:%s 20:%s 21:%s 0:%d 1:%d 2:%d %s\n",
  60.             b.a, b.b[0].a[0], b.b[0].a[1], b.b[1].a[0], b.b[1].a[1],
  61.             b.b[2].a[0], b.b[2].a[1], b.c.a[0].a, b.c.a[1].a,
  62.             b.c.a[2].a, b.d);
  63.  
  64.     printf("%d 00:%s 01:%s 10:%s 11:%s 20:%s 21:%s 0:%d 1:%d 2:%d %s\n",
  65.             c.a, c.b[0].a[0], c.b[0].a[1], c.b[1].a[0], c.b[1].a[1],
  66.             c.b[2].a[0], c.b[2].a[1], c.c.a[0].a, c.c.a[1].a,
  67.             c.c.a[2].a, c.d);
  68.  
  69.     printf("%d 00:%s 01:%s 10:%s 11:%s 20:%s 21:%s 0:%d 1:%d 2:%d %s\n",
  70.             d.a, d.b[0].a[0], d.b[0].a[1], d.b[1].a[0], d.b[1].a[1],
  71.             d.b[2].a[0], d.b[2].a[1], d.c.a[0].a, d.c.a[1].a,
  72.             d.c.a[2].a, d.d);
  73.  
  74.     for(i=0; i<2; i++)
  75.         for(j=0; j<3; j++)
  76.             for(k=0; k<4; k++)
  77.                 printf("%d ", e[i][j][k]);
  78.     puts("");
  79.  
  80.     for(i=0; i<2; i++)
  81.         for(j=0; j<3; j++)
  82.             for(k=0; k<4; k++)
  83.                 printf("%d ", f[i][j][k]);
  84.     puts("");
  85.  
  86.     for(i=0; i<2; i++)
  87.         for(j=0; j<3; j++)
  88.             for(k=0; k<4; k++)
  89.                 printf("%d ", g[i][j][k]);
  90.     puts("");
  91.  
  92.     for(i=0; i<2; i++)
  93.         for(j=0; j<3; j++)
  94.             for(k=0; k<4; k++)
  95.                 printf("%d ", h[i][j][k]);
  96.     puts("");
  97.  
  98.     return 0;
  99. }
  100.