Freigeben über


__unaligned

Wenn Sie einen Zeiger mit dem __unaligned-Modifizierer deklariert wird, geht der Compiler davon aus, dass der Zeiger Daten bezieht, der nicht ausgerichtet ist.Aus diesem Grund für eine Anwendung, die auf einem Computer der Itanium-Prozessorfamilie (IPF) festgelegt wurde, generiert der Compiler Code, der die nicht ausgerichtet byteseriellen Daten einen liest.

Hinweise

Der __unaligned-Modifizierer ist für die x64 gültig und Itanium Compiler wirkt sich jedoch nur Anwendungen dieses Ziel ein IPF-Computer.Dieser Modifizierer beschreibt die Ausrichtung nur der adressierten Daten. Zeiger selbst wird angenommen ausgerichtet werden soll.

Die Ausrichtung Itanium Prozessor generiert einen Fehler, wenn er falsch ausgerichtet auf Daten zugegriffen wird, und Uhrzeit der letzten Verarbeitung des Fehlers schwächt Leistung. Verwenden Sie den __unaligned-Modifizierer, um den Prozessor dass die Daten einen byteseriellen zu lesen und den Fehler zu vermeiden.Dieser Modifizierer ist nicht für x64 Anwendungen erforderlich, da der x64 Prozessor falsch ausgerichtet Daten behandelt, ohne bemängeln.

Weitere Informationen zur Ausrichtung finden Sie unter:

Beispiel

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

Siehe auch

Referenz

C++-Schlüsselwörter