4
이것은 인터뷰에서 질문되었습니다. "아래 함수에 버그가 있습니다. 무엇입니까?" c 함수를 추가하고 main 함수가이를 호출하는 것은 간단합니다. "입력 값을 다르게해서 테스트하고 버그를 찾아라."간단한 추가 기능에서 버그 찾기
int add (int x, int y)
{
return x + y;
}
이것은 인터뷰에서 질문되었습니다. "아래 함수에 버그가 있습니다. 무엇입니까?" c 함수를 추가하고 main 함수가이를 호출하는 것은 간단합니다. "입력 값을 다르게해서 테스트하고 버그를 찾아라."간단한 추가 기능에서 버그 찾기
int add (int x, int y)
{
return x + y;
}
문제 x+y
초과 또는 INT_MAX
INT_MIN
미만이면 정수 오버 플로우가 발생할 수있다. 따라서 반환 유형으로 long long
을 사용하십시오.
+1 물론 C99을 지원하지 않는 컴파일러의 경우 'long long'대신 사용할 수 있습니다. –
숫자 중 적어도 하나가 0보다 크다는 것을 안다면'unsigned'을 사용할 수 있습니다. – banarun
"적어도 하나의 숫자가 0보다 큽니다", 아니요, '부호없는 long x = -5 + 2'가 실패합니다. 더 큰 abs 값이> 0입니까? –