Strukturen lassen sich in Strukturen einbetten um verschaltete Strukturen zu erstellen.

Das folgende Beispiel verdeutlicht den Sachverhalt:

#include <stdalign.h>
#include <stdio.h>

struct point {
    int x;
    int y;
    int z;
};

struct rectangle {
    struct point p1;
    struct point p2;
};

int main()
{
    struct rectangle rect = {
            .p1 = {
                    .x = 5,
                    .y = 7,
                    .z = 12
            },
            .p2 = {
                    .x = 9,
                    .y = 13,
                    .z = 27
            }
    };

    printf("rect: p1: x=%d, y=%d, z=%d - p2: x=%d, y=%d, z=%d\n", rect.p1.x, rect.p2.y, rect.p2.z, rect.p2.x, rect.p2.y, rect.p2.z);

    rect.p2.y = 14;

    printf("rect: p1: x=%d, y=%d, z=%d - p2: x=%d, y=%d, z=%d\n", rect.p1.x, rect.p2.y, rect.p2.z, rect.p2.x, rect.p2.y, rect.p2.z);

    printf("sizeof(struct point) : %zd\n", sizeof(struct rectangle));
    printf("alignof(struct point): %zd\n", alignof(struct rectangle));

    return 0;
}
Last modified: Friday, 18 May 2018, 5:19 PM