programing

if 문 정수

i4 2023. 7. 25. 20:27
반응형

if 문 정수

저는 이것이 간단한 질문이라고 생각하지만, 저는 다음과 같이 어려움을 겪고 있습니다.예를 들어 다음과 같은 문장이 있습니다(언어는 C).

int foobar

if (foobar)
{
// do something.
}

자, 만약 제가 이것에 대해 옳다면, 이 진술은 다음과 같은 경우에 사실입니다.foobar0이 아닙니다.그래서 그것은 거의 똑같아야 합니다.if (foobar!=0).

하지만 만약에foobar음수가 됩니까?

음 또는 양의.0이 아닌 모든 것은 진정한 가치입니다.if

또한 음수를 고려합니다: -1

C에서 -1은 내부적으로 다음과 같이 표시됩니다.0xFFFFFFFF이 경우, 부호 없는 정수로 캐스팅하면 양수가 될 것입니다.

하지만 C99 표준 컴파일러가 등장한 후에, 저는 당신이 다음을 사용할 것을 제안합니다.<stdbool.h>대신.추측이 훨씬 덜 통하게 합니다.

stdbool에 대해 여기에서 읽어보세요.

마찬가지로

if (foobar) 

0이 아닌 푸바를 의미하므로 긍정적이든 부정적이든 상관없습니다. 여전히 0이 아닙니다.

푸바가 음수인 경우(0과는 여전히 다름) 진술은 true를 반환해야 하지만, 이러한 방식으로 서로 다른 '참' 값을 가질 수 있는 변수를 테스트하는 것은 최선의 방법이 아니기 때문에 이러한 유형의 검정은 피해야 합니다.

언급URL : https://stackoverflow.com/questions/14646718/if-statement-integer

반응형