__unaligned
Quando si dichiara un puntatore a __unaligned il modificatore, il compilatore presuppone che il puntatore indirizzi dati che non sono allineati.Di conseguenza, per un'applicazione destinata a un computer (IPF) della famiglia di processori Itanium, il compilatore genera codice che legge i dati non allineati un byte per volta.
Note
__unaligned il modificatore è valido per x64 e Itanium i compilatori ma influisce solo sulle applicazioni destinate a un computer IPF.Questo modificatore viene descritto l'allineamento dei dati indirizzati solo; il puntatore stesso sia allineato.
Itanium il processore generato un errore di allineamento durante l'accesso ai dati disallineati e del tempo di elaborazione l'errore indebolisce le prestazioni. utilizzare __unaligned modificatore per determinare il processore per leggere i dati byte singolo per volta ed evitare l'errore.Questo modificatore non è obbligatoria per x64 poiché applicazioni x64 il processore gestisce i dati disallineati senza restituire un errore.
Per ulteriori informazioni sull'allineamento, vedere:
Esempio
// unaligned_keyword.cpp
// compile with: /c
// processor: x64 IPF
#include <stdio.h>
int main() {
char buf[100];
int __unaligned *p1 = (int*)(&buf[37]);
int *p2 = (int *)p1;
*p1 = 0; // ok
__try {
*p2 = 0; // throws an exception
}
__except(1) {
puts("exception");
}
}