ISO C 비교 오류: 포인터 및 정수
Bjarne Stroustrup의 C 책에서 예제를 작업하는 동안 일부 사용자는 컴파일- ISO C가 포인터와 정수 간의 비교를 금지함을 나타내는 시간 오류입니다. 이 문제는 accept() 함수의 char 변수와 문자열 상수를 포함하는 비교에서 발생합니다.
원인:
ISO C에서는 직접 비교를 금지하기 때문에 오류가 발생합니다. 문자 포인터(예: char*)와 정수(예: 큰따옴표로 묶인 문자의 숫자 값(예: "y")).
해결책:
이 오류를 해결하는 두 가지 기본 방법이 있습니다.
선호되는 접근 방식: 문자열 변수 사용:
<code class="cpp">#include <iostream> #include <string> using namespace std; bool accept() { cout << "Do you want to proceed (y or n)?\n"; string answer; cin >> answer; if (answer == "y") return true; return false; }</code>
대체 접근 방식: 작은따옴표 사용:
<code class="cpp">#include <iostream> #include <string> using namespace std; bool accept() { cout << "Do you want to proceed (y or n)?\n"; char answer; cin >> answer; if (answer == 'y') return true; return false; }</code>
위 내용은 ISO C가 포인터와 정수 비교를 금지하는 이유는 무엇이며 내 코드에서 이 오류를 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!