!!를 사용하는 이유
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을 넘겨줘도 올바른 결과를..