C언어 펀더멘탈 - 고정관념을 버리자.
소스만 보고 성능을 비교할 수 있을까? C 언어 서적을 보다 보면 증감 연산자 부분에서 강조하는 다음과 같은 이야기가 있다. "i++가 i += 1 혹은 i = i + 1 보다 성능이 더 좋다." 과연 이 이야기는 맞는 것일까? 답은 "아니다" 이다. 위의 이야기에 나온 내용을 소스로 구현하고 컴파일 후 디스어셈블리로 보면 위 3가지 경우가 모두 같은 3줄의 어셈블리 소스로 구현되어 있고 결과적으로 성능에는 전혀 차이가 없다는 것을 알 수 있다. C 소스. #include int main() { int i = 0; i++; i += 1; i = i + 1; return 0; } C 소스 컴파일 후 디스어셈블리. 1: #include 2: 3: int 4: main() 5: { 00401010 push e..