우리는 다음과 같이 선언 된 함수가 있다고 가정 "정수 변환을 잘라내기를 초래했습니다. " 컴파일러는 변수 const ulong test = 5000
를 선언하면 내가, 어쨌든 값암시 적 캐스트 C 언어에서 함수에 인수를 전달할 때
보다 큰 255을 통과하는 것이 나에게 경고하고, 컴파일러가 같은 가능한 문제에 대해 경고하지 않습니다 내가 그것을 myFunct(test)
을 myFunct을 전달합니다.
누구든지이 동작을 설명 할 수 있습니까?
이 경고가 누락되면 내 코드의 성가신 버그가 발생하며 이러한 종류의 문제가 다른 곳에 나타날 수 있습니다.
MinGW 및 GHS 버전 5 (GreenHills)와 같은 다른 컴파일러를 사용해 보았지만 두 가지 모두보고 된 문제에 대해 경고하지 않았습니다.
이러한 문제를 방지 할 수있는 방법이 있는지 알려주실 수 있습니까?
정적 C/C++ 코드 분석을위한 도구 (cppcheck, viva64 등)를 사용해보십시오. – Ilya