Compartir a través de


__unaligned

Cuando se declara un puntero con el modificador de __unaligned , el compilador supone que el puntero a los datos que no está alineado.Por consiguiente, para una aplicación destinada a un equipo de la familia (IPF) de procesadores Itanium, el compilador genera código que lee datos sin alinear un byte al mismo tiempo.

Comentarios

El modificador de __unaligned es válido para los compiladores de x64 y de Itanium pero solo afecta a las aplicaciones destinados a un equipo IPF.Este modificador describe la alineación de los datos dirigidos sólo; el propio puntero se supone alinearse.

El procesador de Itaniumgenera un error de alineación cuando tiene acceso a datos mal desalineados, y la hora de procesar el error debilita rendimiento. Utilice el modificador de __unaligned para que el procesador para leer los datos un byte al mismo tiempo y evitar el error.No requieren este modificador para las aplicaciones de x64porque el procesador de x64 controla datos mal desalineados sin el desplazamiento.

Para obtener más información sobre la alineación, vea:

Ejemplo

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

Vea también

Referencia

Palabras clave de C++