¿Cuál es el significado de "__attribute __ ((empaquetado, alineado (4)))"

Es lenguaje C. Está escrito que:

typedef struct __attribute__((packed, aligned(4))) Ball {
    float2 delta;
    float2 position;
    //float3 color;
    float size;
    //int arcID;
    //float arcStr;
} Ball_t;
Ball_t *balls;

Por favor, dígame qué significa y cómo usar esta palabra clave.