Memory Alignment Requirements

Why do most CPU architectures require or prefer memory alignment?

struct Data {
    char a;    // 1 byte
    int b;     // 4 bytes
    char c;    // 1 byte
}; // sizeof(Data) = ?