共用方式為


__unaligned

當您使用 __unaligned 修飾詞宣告指標時,編譯器會假設指標位址資料並未對齊。 因此,對於以 Itanium 處理器系列 (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++ 關鍵字