Udostępnij za pośrednictwem


__unaligned

Kiedy zadeklarować wskaźnika z __unaligned , modyfikator kompilator zakłada, że wskaźnik adresów danych, który nie jest odpowiednio wyrównany.W związku z tym dla aplikacji, która jest przeznaczony dla komputera rodziny procesor Itanium (IPF), kompilator generuje kod, który odczytuje bajt danych odwołań do niewyrównanych jednej naraz.

Uwagi

__unaligned Modyfikator jest prawidłowy dla x64 i Itanium kompilatory, ale dotyczy tylko aplikacje, które IPF komputer docelowy.Modyfikator opisuje wyrównanie danych adresowanych tylko; przyjęto, że wskaźnik sam być wyrównany.

Itanium Podczas uzyskuje dostęp do źle wyrównanych danych i czasu przetwarzania usterki osłabia wydajności procesora generuje błąd wyrównania. Użyj __unaligned modyfikator spowodować procesora do odczytywania danych jednego bajtu w czasie i uniknąć usterki.Modyfikator nie jest wymagane dla x64 aplikacji ponieważ x64 procesora obsługuje niespójnych danych bez spowodował błąd.

Aby uzyskać więcej informacji na temat wyrównywania zobacz:

Przykład

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

Zobacz też

Informacje

Słów kluczowych języka C++