C ++에서 부호있는 정수와 부호없는 정수의 잘못된 빼기를 감지하는 방법은 무엇입니까?

니콜라스 D.

unsigned int를 사용하여 signed int를 빼고 결과를 float로 캐스트하는 레거시 코드가 있습니다. Visual Studio 6에서 2013까지 예상 된 결과를 제공했습니다. Visual Studio 2017 (15.6.3)에서는 예상 한 결과가 아닙니다. 코드를 다음과 같이 단순화했습니다.

    unsigned int uint = 10;
    signed int sint = 9;
    signed int res = sint - uint;
    float fres = static_cast<float>(sint - uint);

res 값은 내가 테스트 한 모든 VS에서 -1입니다. VS 2013 및 이전 버전에서는 fres 값이 -1입니다. VS 2017에서 fres 값은 4.29496730e + 09, 즉 UINT_MAX입니다. 나는 여기서 VS 2017의 fres 결과가 C ++ 11 표준을 준수한다는 것을 발견 했습니다 (올바르게 이해한다면). VS 2017 컴파일러는 이에 대한 경고를 발행하지 않습니다.

내 코드베이스에서 이러한 잘못된 뺄셈의 모든 발생을 어떻게 감지 할 수 있습니까?

로만 파벨 카

MSVC는이를 감지 할 수 /W4 /c없거나 /Wall추가 linter가 필요합니다. 예를 들어이를 clang-tidy감지하는 것입니다 ( Stephen Newell 제공 ).

g++컴파일러를 사용할 때 -Wsign-conversion컴파일러 옵션을 찾고 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

부호있는 정수를 C에서 해당하는 부호없는 정수로 변환하는 방법은 무엇입니까?

분류에서Dev

잘못된 입력으로부터 libgdx 함수를 JSON에서 보호하는 방법은 무엇입니까?

분류에서Dev

C에서 "munmap_chunk () : 잘못된 포인터"오류를 수정하는 방법은 무엇입니까?

분류에서Dev

32 비트 부호있는 정수를 64 비트 부호없는 정수의 더 높은 32 비트에 넣는 방법은 무엇입니까?

분류에서Dev

URL에서 잘못된 수의 슬래시를 확인하고 수정하는 방법은 무엇입니까?

분류에서Dev

Java에서 부호있는 16 비트 정수를 부호없는 16 비트 정수로 변환하는 방법은 무엇입니까?

분류에서Dev

C의 문자에서 정수를 빼는 방법은 무엇입니까?

분류에서Dev

c 컴파일러는 부호없는 정수와 부호있는 정수를 어떻게 처리합니까? 서명되지 않은 산술 연산의 어셈블리 코드가 동일한 이유는 무엇입니까?

분류에서Dev

C-기록 malloc () 호출에 사용 된 음수 크기를 감지하는 방법은 무엇입니까?

분류에서Dev

C ++에서 "오류 : 비 정적 데이터 멤버 'tree :: root'의 잘못된 사용"오류를 수정하는 방법은 무엇입니까?

분류에서Dev

* 또는-연산자없이 C에서 양의 정수를 부정하는 방법은 무엇입니까?

분류에서Dev

브라우저 배율에서 잘못된 요소 크기를 수정하는 방법은 무엇입니까?

분류에서Dev

C에서 부호있는 정수와 부호없는 정수의 비트 NOT

분류에서Dev

파이썬에서 정수를 부호없는 32 비트로 변환하는 방법은 무엇입니까?

분류에서Dev

C #에서 음수를 빼는 방법은 무엇입니까?

분류에서Dev

Leadtools OCR Form Recognise에서 잘못된 높이 / 너비 오류를 수정하는 방법은 무엇입니까?

분류에서Dev

Outlook에서 읽지 않은 이메일 플래그의 잘못된 수를 수정하는 방법은 무엇입니까?

분류에서Dev

"미해결 외부 기호 _gladLoadGLLoader 함수에서 참조 된 _main"및 "미해결 외부 기호 _glad_glViewport"를 수정하는 방법은 무엇입니까?

분류에서Dev

C ++에서 128 비트 부호없는 정수를 입력하는 방법

분류에서Dev

C # VS 2010에서 잘못된 인수 Int32.TryParse 오류를 수정하는 방법은 무엇입니까?

분류에서Dev

QFile에서 부호있는 16 비트 정수를 읽는 방법은 무엇입니까?

분류에서Dev

C는 부호있는 정수와 부호없는 정수로 음수를 어떻게 저장합니까?

분류에서Dev

숫자가 C에서 정수인지 부동인지 감지하는 방법은 무엇입니까?

분류에서Dev

부호있는 또는 부호없는 정수의 최상위 비트를 테스트하는 방법은 무엇입니까?

분류에서Dev

Visual Studio에서 잘못된 XML 주석에 플래그를 지정하는 방법은 무엇입니까?

분류에서Dev

Adobe DTM-DTM에서 페이지에 정의 된 변수를 호출하는 방법은 무엇입니까?

분류에서Dev

"그룹 기능의 잘못된 사용"오류를 수정하는 방법은 무엇입니까?

분류에서Dev

<object> 요소가 참조하는 svg에서 부모 문서에 정의 된 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

<object> 요소가 참조하는 svg에서 부모 문서에 정의 된 함수를 호출하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    부호있는 정수를 C에서 해당하는 부호없는 정수로 변환하는 방법은 무엇입니까?

  2. 2

    잘못된 입력으로부터 libgdx 함수를 JSON에서 보호하는 방법은 무엇입니까?

  3. 3

    C에서 "munmap_chunk () : 잘못된 포인터"오류를 수정하는 방법은 무엇입니까?

  4. 4

    32 비트 부호있는 정수를 64 비트 부호없는 정수의 더 높은 32 비트에 넣는 방법은 무엇입니까?

  5. 5

    URL에서 잘못된 수의 슬래시를 확인하고 수정하는 방법은 무엇입니까?

  6. 6

    Java에서 부호있는 16 비트 정수를 부호없는 16 비트 정수로 변환하는 방법은 무엇입니까?

  7. 7

    C의 문자에서 정수를 빼는 방법은 무엇입니까?

  8. 8

    c 컴파일러는 부호없는 정수와 부호있는 정수를 어떻게 처리합니까? 서명되지 않은 산술 연산의 어셈블리 코드가 동일한 이유는 무엇입니까?

  9. 9

    C-기록 malloc () 호출에 사용 된 음수 크기를 감지하는 방법은 무엇입니까?

  10. 10

    C ++에서 "오류 : 비 정적 데이터 멤버 'tree :: root'의 잘못된 사용"오류를 수정하는 방법은 무엇입니까?

  11. 11

    * 또는-연산자없이 C에서 양의 정수를 부정하는 방법은 무엇입니까?

  12. 12

    브라우저 배율에서 잘못된 요소 크기를 수정하는 방법은 무엇입니까?

  13. 13

    C에서 부호있는 정수와 부호없는 정수의 비트 NOT

  14. 14

    파이썬에서 정수를 부호없는 32 비트로 변환하는 방법은 무엇입니까?

  15. 15

    C #에서 음수를 빼는 방법은 무엇입니까?

  16. 16

    Leadtools OCR Form Recognise에서 잘못된 높이 / 너비 오류를 수정하는 방법은 무엇입니까?

  17. 17

    Outlook에서 읽지 않은 이메일 플래그의 잘못된 수를 수정하는 방법은 무엇입니까?

  18. 18

    "미해결 외부 기호 _gladLoadGLLoader 함수에서 참조 된 _main"및 "미해결 외부 기호 _glad_glViewport"를 수정하는 방법은 무엇입니까?

  19. 19

    C ++에서 128 비트 부호없는 정수를 입력하는 방법

  20. 20

    C # VS 2010에서 잘못된 인수 Int32.TryParse 오류를 수정하는 방법은 무엇입니까?

  21. 21

    QFile에서 부호있는 16 비트 정수를 읽는 방법은 무엇입니까?

  22. 22

    C는 부호있는 정수와 부호없는 정수로 음수를 어떻게 저장합니까?

  23. 23

    숫자가 C에서 정수인지 부동인지 감지하는 방법은 무엇입니까?

  24. 24

    부호있는 또는 부호없는 정수의 최상위 비트를 테스트하는 방법은 무엇입니까?

  25. 25

    Visual Studio에서 잘못된 XML 주석에 플래그를 지정하는 방법은 무엇입니까?

  26. 26

    Adobe DTM-DTM에서 페이지에 정의 된 변수를 호출하는 방법은 무엇입니까?

  27. 27

    "그룹 기능의 잘못된 사용"오류를 수정하는 방법은 무엇입니까?

  28. 28

    <object> 요소가 참조하는 svg에서 부모 문서에 정의 된 함수를 호출하는 방법은 무엇입니까?

  29. 29

    <object> 요소가 참조하는 svg에서 부모 문서에 정의 된 함수를 호출하는 방법은 무엇입니까?

뜨겁다태그

보관