次の方法で共有


__ud2

Microsoft 固有の仕様

未定義の命令を生成します。

構文

void __ud2();

解説

未定義の命令を実行すると、プロセッサは無効なオペコード例外を発生させます。

__ud2 関数は UD2 マシン語命令と同じです。 詳細は、Intel Corporation のサイトで "Intel アーキテクチャ ソフトウェア デベロッパーズ マニュアル ボリューム2: 命令セット リファレンス" というドキュメントを検索してください。

要件

Intrinsic Architecture
__ud2 x86、x64

ヘッダー ファイル<intrin.h>

Microsoft 固有の仕様はここまで

次の例では、未定義の命令を実行します。これにより、例外が発生します。 次に、例外ハンドラーが、リターン コードを 0 から 1 に変更します。

// __ud2_intrinsic.cpp
#include <stdio.h>
#include <intrin.h>
#include <excpt.h>
// compile with /EHa

int main() {

// Initialize the return code to 0.
int ret = 0;

// Attempt to execute an undefined instruction.
  printf("Before __ud2(). Return code = %d.\n", ret);
  __try {
  __ud2();
  }

// Catch any exceptions and set the return code to 1.
  __except(EXCEPTION_EXECUTE_HANDLER){
  printf("  In the exception handler.\n");
  ret = 1;
  }

// Report the value of the return code.
  printf("After __ud2().  Return code = %d.\n", ret);
  return ret;
}
Before __ud2(). Return code = 0.
  In the exception handler.
After __ud2().  Return code = 1.

関連項目

コンパイラの組み込み