Condividi tramite


__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");
   }
}

Vedere anche

Riferimenti

Parole chiave C++