Page 23 -
P. 23

double d;
                   ...
                   float f2 = {d}; // 축소 오류


                   두 타입 사이에 값을 축소하는 현상은 피차 마찬가지라는 점을 유의하라.

                   unsigned u3 = {3};
                   int      i2 = {2};
                   unsigned u4 = {i2};      // 축소 오류: 음수를 가질 수 없다.
                   int      i3 = {u3};      // 축소 오류: 큰 값을 모두 나타낼 수 없다.

                   signed int와 unsigned int 타입의 크기는 같지만, 각 타입의 모든 값은 다르게 표시한다.





                   1.2.4  범위


                   범위는 변수와 상수의 수명과 가시성을 결정하고 프로그램 구조를 확립하는 데 기여한다.


                   1.2.4.1 전역 정의

                   프로그램에서 사용하려는 모든 변수는 사용하기 전에 타입 지정자와 함께 선언해야 한다. 하나의
                   변수는 전역 범위나 지역 범위에 위치할 수 있다. 전역 변수는 모든 함수의 바깥에 선언한다. 전역

                   변수를 선언하고 나면 코드 어디에서나, 심지어 함수 안에서도 참조할 수 있다. 변수를 쉽게 사용
                   할 수 있으므로 처음에는 매우 편한 것처럼 보이지만, 소프트웨어의 규모가 커짐에 따라 전역 변
                   수들의 수정 사항을 추적하기가 더 어려워지고 고통스러워진다. 어느 시점이 되면 코드를 변경할
                   때마다 오류 사태를 촉발하게 되는 잠재력을 지니게 된다.


                        Caution  전역 변수를 사용하지 마라.




                   만약 전역 변수를 사용한다면 조만간 후회하게 될 것이다. 우리를 믿어라. 다음과 같은 전역 상수
                   는 사이드 이펙트(Side Effect)가 발생하지 않기 때문에 괜찮다.

                   const double pi = 3.14159265358979323846264338327950288419716939;









             034




         모던c++_09.indd   34                                                                     2017-12-11   오전 11:02:55
   18   19   20   21   22   23   24   25