strtol 함수는 긴 정수의 문자열 표현을 긴 값으로 변환합니다. 하지만 이 함수를 사용할 때에는 오류를 올바르게 처리하는 방법을 이해하는 것이 필수적입니다.
주어진 코드에서는 잘못된 가정으로 인해 문제가 발생합니다. 코드는 strtol이 문자열을 성공적으로 변환하는 경우 두 번째 매개 변수가 NULL과 같아야 한다는 사실에 의존합니다. 그러나 이 가정이 항상 사실이 아닐 수도 있습니다.
strtol에서 오류를 효과적으로 감지하려면 적절한 오류 처리 지침을 따라야 합니다.
다음은 이러한 원칙을 준수하는 parsLong 함수의 수정된 버전입니다.
static long parseLong(const char *str) { errno = 0; char *temp; long val = strtol(str, &temp, 0); if (temp == str || *temp != '<pre class="brush:php;toolbar:false">bool parseLong(const char *str, long *val) { errno = 0; char *temp; *val = strtol(str, &temp, 0); if (temp == str || *temp != '' || ((*val == LONG_MIN || *val == LONG_MAX) && errno == ERANGE)) { return false; } return true; }
또는 별도의 오류 처리를 위해 변환 결과에서 수정된 인터페이스를 사용할 수 있습니다:
위 내용은 strtol을 올바르게 사용하여 문자열을 긴 정수로 변환하고 잠재적인 오류를 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!