Comment puis-je vérifier une adresse mémoire est 32 bits alignés en C

Ma question est en deux parties.

Tout d'abord, comme un débutant à cet espace d'adresse, je voudrais savoir quel est le sens de l'alignement de la mémoire d'une adresse. J'ai Googlé ce sujet mais je voulais poser cette question ici, car j'ai trouvé des réponses ici très utile.

La deuxième partie de ma question est liée à l'alignement et de la programmation: comment savoir si une adresse est 4 octets aligné ou pas ?
J'ai lu quelque part:

  if(address & 0x3) //for 32 bit register 

Mais je ne sais pas vraiment comment cela vérifie les 4 octets de l'alignement.
Quelqu'un pourrait-il expliquer en détail?

Edit: Ce serait génial Si quelqu'un peut tirer picturale vue à ce sujet.

Grâce

source d'informationauteur Amit Singh Tomar | 2013-10-04