Alignment of a given [[Type]] $T$ or instance of a type is a restriction on what memory address a given instance of $T$ is allowed to occupy. Alignment is almost always a *power of two*.
Alignment can be messed up as in languages like C/C++ - [[Padding]] will be introduced to always ensure alignment.
```cpp
struct A {
char a; // 1 byte
// 3 bytes of padding that are basically unused
int b; // 4 bytes
};
```