Поделиться через


__unaligned

При объявлении указателя с __unaligned модификатор, компилятор предполагает, что указатель адреса данные, не выровнены.Следовательно, для приложения, предназначен для компьютер Itanium processor family (IPF), компилятор создает Код, который считывает один байт бесподстроечные данные одновременно.

Заметки

__unaligned модификатор допустимым для x64 и Itanium компиляторы, но затрагивают только приложения, этот целевой объект компьютер IPF.Этот модификатор описывает выравнивание данных обращаннсяых только; предполагается, что выравниваются сам указатель.

Itanium процессор формирует ошибку выравнивания, когда он обращается к разрегулированные данные и время обработки ошибки слабеет производительность. используйте __unaligned модификатор, чтобы процессор чтения данных один байт одновременно и избежать ошибки.Этот модификатор требуется для x64 приложения, поскольку x64 маркеры процессора разрегулировали данных без ошибаться.

Дополнительные сведения о выравнивании см. в разделе:

Пример

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

См. также

Ссылки

Ключевые слова C++