다음을 통해 공유


컴파일러 경고(수준 1) C4401

'bitfield': 멤버가 비트 필드입니다.

인라인 어셈블리 코드는 비트 필드 멤버에 액세스하려고 합니다. 인라인 어셈블리는 비트 필드 멤버에 액세스할 수 없으므로 비트 필드 멤버가 사용되기 전 마지막 압축 경계가 사용됩니다.

이 경고를 방지하려면 인라인 어셈블리 코드에서 참조를 만들기 전에 비트 필드를 적절한 형식으로 캐스팅합니다. 다음 샘플에서는 C4401을 생성합니다.

// C4401.cpp
// compile with: /W1
// processor: x86
typedef struct bitfield {
   signed bit : 1;
} mybitfield;

int main() {
   mybitfield bf;
   bf.bit = 0;
   __asm {
      mov bf.bit,0;   // C4401
   }

   /* use the following __asm block to resolve the warning
   int i = (int)bf.bit;
   __asm {
      mov i,0;
   }
   */
}