C/C++文{_asmint 3;}VCの下でコンパイルしたことがありますか?

905 ワード

C/C++文{_asmint 3;}VCの下でコンパイルしたことがありますか?
今日はマクロを書くときにずっと報告します.
fatal error C1075: end of file found before the left brace '{' at 'd:\xxx.cpp(49)' was matched
除外コードをチェックし、マクロを削除し、一言残します.
{__asm int 3;}
カッコを外してコンパイルに成功しました.取り除くコンパイルも成功
私は不思議に思って、MSDNのドキュメントを調べて、中はこのように書いています:
__asm assembly-instruction [ ; ]
__asm { assembly-instruction-list } [ ; ]
asm-statement:
__asm assembly-instruction ;opt
__asm { assembly-instruction-list };opt
assembly-instruction-list:
assembly-instruction;opt
assembly-instruction;assembly-instruction-list;opt
つまりセミコロンはオプションでluaに似ています
セミコロンをつけなくてもこのように書くことができます
__asm mov al, 2   __asm mov dx, 0xD007   __asm out dx, al
 
   ,       VC bug
 
    vs2008 c/c++