반응형
if 문 정수
저는 이것이 간단한 질문이라고 생각하지만, 저는 다음과 같이 어려움을 겪고 있습니다.예를 들어 다음과 같은 문장이 있습니다(언어는 C).
int foobar
if (foobar)
{
// do something.
}
자, 만약 제가 이것에 대해 옳다면, 이 진술은 다음과 같은 경우에 사실입니다.foobar
0이 아닙니다.그래서 그것은 거의 똑같아야 합니다.if (foobar!=0)
.
하지만 만약에foobar
음수가 됩니까?
음 또는 양의.0이 아닌 모든 것은 진정한 가치입니다.if
또한 음수를 고려합니다: -1
C에서 -1은 내부적으로 다음과 같이 표시됩니다.0xFFFFFFFF
이 경우, 부호 없는 정수로 캐스팅하면 양수가 될 것입니다.
하지만 C99 표준 컴파일러가 등장한 후에, 저는 당신이 다음을 사용할 것을 제안합니다.<stdbool.h>
대신.추측이 훨씬 덜 통하게 합니다.
마찬가지로
if (foobar)
0이 아닌 푸바를 의미하므로 긍정적이든 부정적이든 상관없습니다. 여전히 0이 아닙니다.
푸바가 음수인 경우(0과는 여전히 다름) 진술은 true를 반환해야 하지만, 이러한 방식으로 서로 다른 '참' 값을 가질 수 있는 변수를 테스트하는 것은 최선의 방법이 아니기 때문에 이러한 유형의 검정은 피해야 합니다.
언급URL : https://stackoverflow.com/questions/14646718/if-statement-integer
반응형
'programing' 카테고리의 다른 글
OpenMP가 없는 시스템에서 OpenMP 무시 (0) | 2023.07.25 |
---|---|
파이썬에서 파일이 심볼릭 링크인지 확인하는 방법은 무엇입니까? (0) | 2023.07.25 |
이 작업을 수행하려면 ORA-02069 global_names 매개 변수를 TRUE로 설정해야 합니다. (0) | 2023.07.25 |
JavaScript에서 동적(변수) 문자열을 정규식 패턴으로 사용 (0) | 2023.07.25 |
동일 원산지 정책 - AJAX & 공용 API 사용 (0) | 2023.07.25 |