> 백엔드 개발 > C++ > int를 string::size_type과 비교하면 업데이트된 코드에서 경고가 발생하는 이유는 무엇입니까?

int를 string::size_type과 비교하면 업데이트된 코드에서 경고가 발생하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-07 03:39:02
원래의
628명이 탐색했습니다.

Why does comparing an int to string::size_type trigger a warning in the updated code?

부호 있는 정수 표현식과 부호 없는 정수 표현식의 비교: 경고

문의는 프레임 패딩을 결정하는 맥락에서 부호 있는 정수 표현식과 부호 없는 정수 표현식을 비교하는 동안 발생한 경고를 중심으로 진행됩니다. 별표 테두리 인사말.

질문:

업데이트된 프로그램에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿