if에 관한 고찰 (In C)
먼저 GCC의 최적화 방식을 알아보자. GCC는 상수가 들어왔을 때 해당 값에 따라서 비교하는 명령어(어셈에선 cmp)를 생성하지 않는다. 즉, 다음과 같은 식에서 GCC는 cmp와 je(jump)를 생성하지 않고 바로 내부 코드를 생성한다 이 방식은 연산자가 존재할
먼저 GCC의 최적화 방식을 알아보자. GCC는 상수가 들어왔을 때 해당 값에 따라서 비교하는 명령어(어셈에선 cmp)를 생성하지 않는다. 즉, 다음과 같은 식에서 GCC는 cmp와 je(jump)를 생성하지 않고 바로 내부 코드를 생성한다 이 방식은 연산자가 존재할
0은 false고 나머지를 true로 받는 이유는 C 컴파일러 마음대로 이기 때문이다. 역어셈을 해보면 int -> bool하는 과정은 그저 cmp 하나로 작성되어 있음을 알 수 있다 cmp 변수 0x0 (cmp는 compare) 실제로 다음 코드를 역어셈 해보면 재밌