TAKEAWAY 3.1 0은 논리값 ‘거짓(false)’을 의미한다.
TAKEAWAY 3.2 0이 아닌 모든 값은 논리값 ‘참(true)’을 의미한다.
==와 != 연산자로 두 값이 같은지 혹은 다른지 비교할 수 있다. a == b이란 표현식에서 a 값과 b 값이 같으면 이 식은 참이 되고, 나머지 경우는 거짓이 된다. 또한 a와 b가 같으면 a != b는 거짓이 되고, 나머지 경우는 참이 된다. 조건으로 숫값을 지정했을 때 평가되는 방식을 잘 알고 있으면 중복된 표현을 피할 수 있다. 예를 들어 다음 문장을 보자.
if (i != 0) {
...
}
이 문장을 다음과 같이 간결하게 표현할 수 있다.
if (i) {
...
}
사실 둘 중 어느 것이 읽기 쉬운지는 코딩 스타일(coding style)C의 문제라서 소모적인 논쟁에 빠지기 쉽다. C 코드를 가끔 읽는 이들은 첫 번째 방식이 쉽게 느껴질 것이고, C의 타입 시스템에 익숙한 이들은 두 번째 스타일을 선호할 것이다.
bool 타입은 진리값을 저장하는 데 사용되며 stdbool.h 파일에 정의돼 있다. bool 타입이 가질 수 있는 값은 false나 true다. 내부적으로 false는 0과 같고, true는 1이다. 조건을 표현할 때는 숫자보다는 false/true로 표현하는 것이 좋다. bool 타입에 대해서는 5.7.4절에서 자세히 소개한다.