BOOL형의 불리언변수를 사용하게 되면 BOOL변수에
4바이트의 int형 값이 들어 갈 수 있게 된다.
다음과 같은 함수가 있을때
BOOL g_bValue = FALSE;
void SetValue (BOOL value)
{
g_bValue = value;
}
void Func ()
{
SetValue(123);
if (g_bValue == TRUE) {}
}
다음과 같이 실수로 123을 넘겨 줬을 경우 Func의 if문은 항상 실패를 하게 된다.
이때 사용자는 값이 있으므로 TRUE가 되겠지 라는 생각을 할 수 도 있게 된다.
void SetValue (BOOL value)
{
g_bValue = !!value;
}
SetValue를 위와같이 만들었다면 0이 아닌값들은 다 TRUE가 되므로
123을 넘겨줘도 올바른 결과를 만들수 있다.
결론적으로 int형 값이 있으면 TRUE 0이면 FALSE로 써야 할때
사용하면 된다.
'IT 이모저모' 카테고리의 다른 글
boost 64 비트 빌드하기 (1) | 2018.02.21 |
---|---|
std::numeric_limits 사용시 에러 (0) | 2018.02.21 |
컴파일 시간에 스트링 해쉬 구하기 (0) | 2018.02.21 |
Debug view (0) | 2018.02.21 |
__if_exists, __if_not_exists, __super (0) | 2018.02.21 |