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 >
Wrap
C/C++ Source or Header
|
2000-09-24
|
3KB
|
100 lines
/*
* C machine サンプル ~ 初期化子
*
* 「複雑な初期化宣言子」
*
*/
#include <stdio.h>
struct tab1 {
int a;
struct {
char a[2][5];
} b[3];
struct {
struct {
int a;
} a[3];
} c;
char d[10];
};
typedef int ARRAY[2][3][4];
int main(void)
{
// 集合体通りに対応した{}全てあり
struct tab1 a = {1, {{{"abc","def"}},{{"ghi","jkl"}},{{"mno","pqr"}}},
{{{2},{3},{4}}}, "stu" };
// 内部集合体には対応した{}まったくなし
struct tab1 b = {1, "abc","def", "ghi","jkl", "mno","pqr",
2, 3, 4, "stu" };
// 集合体通りに対応した{}一部あり
struct tab1 c = {1, {"abc","def", "ghi","jkl", "mno","pqr"},
2, {3}, {4}, "stu" };
// 集合体に対応していない{}あり
struct tab1 d = {1, {"abc",{"def", "ghi"},"jkl", {"mno","pqr"}},
{2, {3, 4}}, "stu" };
// 集合体通りに対応した{}全てあり
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}}};
// 内部集合体には対応した{}まったくなし
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};
// 集合体通りに対応した{}一部あり
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}};
// 集合体に対応していない{}あり
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};
short i,j,k;
printf("%d 00:%s 01:%s 10:%s 11:%s 20:%s 21:%s 0:%d 1:%d 2:%d %s\n",
a.a, a.b[0].a[0], a.b[0].a[1], a.b[1].a[0], a.b[1].a[1],
a.b[2].a[0], a.b[2].a[1], a.c.a[0].a, a.c.a[1].a,
a.c.a[2].a, a.d);
printf("%d 00:%s 01:%s 10:%s 11:%s 20:%s 21:%s 0:%d 1:%d 2:%d %s\n",
b.a, b.b[0].a[0], b.b[0].a[1], b.b[1].a[0], b.b[1].a[1],
b.b[2].a[0], b.b[2].a[1], b.c.a[0].a, b.c.a[1].a,
b.c.a[2].a, b.d);
printf("%d 00:%s 01:%s 10:%s 11:%s 20:%s 21:%s 0:%d 1:%d 2:%d %s\n",
c.a, c.b[0].a[0], c.b[0].a[1], c.b[1].a[0], c.b[1].a[1],
c.b[2].a[0], c.b[2].a[1], c.c.a[0].a, c.c.a[1].a,
c.c.a[2].a, c.d);
printf("%d 00:%s 01:%s 10:%s 11:%s 20:%s 21:%s 0:%d 1:%d 2:%d %s\n",
d.a, d.b[0].a[0], d.b[0].a[1], d.b[1].a[0], d.b[1].a[1],
d.b[2].a[0], d.b[2].a[1], d.c.a[0].a, d.c.a[1].a,
d.c.a[2].a, d.d);
for(i=0; i<2; i++)
for(j=0; j<3; j++)
for(k=0; k<4; k++)
printf("%d ", e[i][j][k]);
puts("");
for(i=0; i<2; i++)
for(j=0; j<3; j++)
for(k=0; k<4; k++)
printf("%d ", f[i][j][k]);
puts("");
for(i=0; i<2; i++)
for(j=0; j<3; j++)
for(k=0; k<4; k++)
printf("%d ", g[i][j][k]);
puts("");
for(i=0; i<2; i++)
for(j=0; j<3; j++)
for(k=0; k<4; k++)
printf("%d ", h[i][j][k]);
puts("");
return 0;
}