728x90
3.5 스타일이 있는 언어의 활용
C++언어는 잘못 활용하면 도저히 사람이 알아볼 수 없는 해괴한 코드를 만들 수 있다.
i++ + ++i;
위 코드는 어떤식으로 동작하는지 C++표준에 정해져 있지 않다.
i++가 변수 i를 이용하면서, 그 값을 증가시키는 부가 효과가 있기 때문이다.
표준에서는 문장 실행 중에 결과값(i + 1) 리턴과 함께 변수 자체의 값 증가까지 완료해야 하는지 정하고 있지 않다.
변수 자체의 값 증가는 문장의 끝인 ; 이후에 반영되어도 된다.
이때문에 ++i에서 어떤 i값이 사용될지 알 수 없다.
따라서 이 코드의 결과는 어떤 컴파일러를 사용하느냐에 따라 달라진다.
a[i] = i++;
이 코드도 마찬가지 이유에서 결과가 어떻게 될지 알 수 없다.
이러한 코드의 사용은 피해야 한다.
C++언어는 강력한 기능을 제공한다. 그런만큼 그 기능의 이용 방식을 이해하여 오용되는 경우를 피하고, 어떤 기능을 이용하면 좋은 스타일의 코드를 만들 수 있는지 고민해야 한다.
3.5.1 상수의 이용
상수값을 남용하다 보면 이해하기 어려운 코드가 된다.예를 들어 어떤 코드에서 2.71828이라는 상수가 이용된다고 하자.
왜 2.71828일까? 이 값의 의미는 무엇일까? 수학에 배경지식이 있는 사람이라면 이 값이 자연로그 베이스 e의 근삿값 임을 알 테지만, 대부분의 사람은 모를 수 있다. 이때는 C++에서 사용하는 상수 표기법을 이용하여 이름을 부여해서 사용할 수 있다.
const double kApproximationForE = 2.1828182845904523536;
728x90
'전문가를 위한 C++정리' 카테고리의 다른 글
3. 코딩 스타일 3.5 스타일이 있는 언어의 활용 3.5.3 커스텀 익셉션의 활용 (0) | 2024.01.18 |
---|---|
3. 코딩 스타일 3.5 스타일이 있는 언어의 활용 3.5.2 참조형으로 포인터 대체 (0) | 2024.01.18 |
3. 코딩 스타일 3.4 네이밍 3.4.2 네이밍 컨벤션 (0) | 2024.01.17 |
3. 코딩 스타일 3.4 네이밍 3.4.1 좋은 이름의 선택 (0) | 2024.01.17 |
3. 코딩 스타일 3.3 코드 분할 3.3.1 리팩토링을 통한 코드 분할 (0) | 2024.01.16 |