Sdílet prostřednictvím


__unaligned

Když deklarujete ukazatel s __unaligned , modifikátor, kompilátor předpokládá, že ukazatel adres data, která není správně zarovnán.Proto aplikace cíle počítače k procesoru Itanium řady (IPF), kompilátor vygeneruje kód, který čte data nezarovnané jeden bajt najednou.

Poznámky

__unaligned Je platný pro modifikátor x64 a Itanium kompilátory, ale ovlivňuje pouze aplikace, které používají počítače s IPF.Tento modifikátor popisuje zarovnání adresou dat samotný ukazatel považován zarovnán.

Itanium Procesor generuje způsobila neplatnost zarovnání má přístup k neuspořádaným datům a doba zpracování chyby oslabí výkonu. Použití __unaligned modifikátor způsobit procesor současně číst data jednoho bajtu a vyhnout se závady.Tento modifikátor není vyžadováno pro x64 aplikace protože x64 procesor zpracovává chybně zarovnaný data bez chybující.

Další informace o zarovnání v následujících tématech:

Příklad

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

Viz také

Referenční dokumentace

Klíčových slov jazyka C++