Re: doplnění prvků do struktury
Miroslav Šinko
sinkomiro na gmail.com
Středa Květen 8 11:29:06 CEST 2024
Moj priklad nebol komletny, pisal som to vecer bez vyskusania.
Takto, hoci lepsie by bolo strukrury definovat typedef-om:
struct x{
size_t size;
int a;
int b;
}x;
struct x_ext{
struct x y;
int c;
int d;
}x_ext;
void test_output(struct x_ext *px_ext)
{
switch(px_ext->y.size)
{
case sizeof(struct x):
printf("access allowed only to a, b\n");
printf("a = %d\n", px_ext->y.a);
printf("b = %d\n", px_ext->y.b);
break;
case sizeof(struct x_ext):
printf("access allowed also to c, d\n");
printf("a = %d\n", px_ext->y.a);
printf("b = %d\n", px_ext->y.b);
printf("c = %d\n", px_ext->c);
printf("d = %d\n", px_ext->d);
break;
default:
printf("unknown struct\n");
}
}
void teststruct()
{
x.size = sizeof(x);
x.a = 1;
x.b = 2;
test_output((struct x_ext *)&x);
x_ext.y.size = sizeof(x_ext);
x_ext.y.a = 10;
x_ext.y.b = 20;
x_ext.c = 30;
x_ext.d = 40;
test_output(&x_ext);
}
Vysledok:
access allowed only to a, b
a = 1
b = 2
access allowed also to c, d
a = 10
b = 20
c = 30
d = 40
miro
Další informace o konferenci Hw-list