문의는 프레임 패딩을 결정하는 맥락에서 부호 있는 정수 표현식과 부호 없는 정수 표현식을 비교하는 동안 발생한 경고를 중심으로 진행됩니다. 별표 테두리 인사말.
질문:
업데이트된 프로그램에서 int를 string::size_type과 비교할 때 경고가 발생하는 이유는 무엇입니까? 문제가 발생하지 않았나요?
답변:
변수를 크기와 비교할 경우 unsigned 또는 string::size_type으로 선언하는 것이 이러한 경고를 피하는 것이 좋습니다. 비교를 위해 정확한 유형(예: 문자열 길이와 비교할 때 string::size_type)을 사용하는 것이 좋습니다.
놀라운 비교:
경고는 부호 있는 정수와 부호 없는 정수의 범위로 인해 비교 시 예상치 못한 결과가 발생합니다. 명확성을 보장하려면 비교를 수행하기 전에 한 값을 다른 값과 호환되는 유형으로 명시적으로 변환하십시오.
변환 예시:
if (i >= 0) { if ((unsigned)i >= u) iIsGreaterThanOrEqualToU(); else iIsLessThanU(); } else { iIsNegative(); }
추가 설명:
이 문제가 나중에 책 "Accelerated C"에서 다루어질지 여부는 원래 문의에서 명시적으로 언급되지 않았습니다.
위 내용은 int를 string::size_type과 비교하면 업데이트된 코드에서 경고가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!