다음을 통해 공유


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

'~': 'type1'을 더 큰 크기의 'type2'로 확장하는 0

(비트 보수) 연산자의 ~ 결과는 부호가 없으며 더 큰 형식으로 변환될 때 0으로 확장됩니다.

예시

다음 예제 ~(a - 1) 에서는 부호 없는 32비트 long 식으로 평가된 다음 0개의 확장으로 64비트로 변환됩니다. 따라서 예기치 않은 결과가 발생할 수 있습니다.

// C4319.cpp
// compile with: cl /W4 C4319.cpp
int main() {
   unsigned long a = 0;
   unsigned long long q = 42;
   q = q & ~(a - 1);    // C4319 expected
}