warning C4800: 'BOOL' : 'true' 또는 'false'로 bool 값을 강제하고 있습니다(성능 경고)


지금 사용하는 엔진 내부에서 BOOL을 쓰고 있고 저는 왠만하면 bool을 쓰기 때문에 저런 경고가 나오더군요. 

또는 warning C4800: 'int' : 'true' 또는 'false'로 bool 값을 강제하고 있습니다(성능 경고) 등의 경고메세지를 뿜어덴다면 아래와 같이 해주면 됩니다. 해결책은 크게 2가지 인데요 삼항연산자를 활용하거나 전처리기로 처리하면 됩니다.


삼항연산자
x = ( y != 0 ) ? true : false;

전처리기
#define getBool( n ) ( ( n ) ! = 0 )

저는 왠만하면 전처리기를 안쓸려고 하기 때문에 삼항연산자로 처리하고 있습니다.

컴파일에러나 링크에러는 당연히 잡아야하는 것이고, 경고도 깔끔하게 잡고 가는게 좋겠죠.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.