전제조건 : 변수의 범위, C++의 함수
C++ 프로그래밍 언어에서 변수는 다양한 데이터 유형을 저장하기 위해 메모리에 제공되는 이름입니다. 변수 값은 프로그램을 실행하는 동안 언제든지 변경될 수 있으며 각 변수에는 지정된 이름을 사용하여 변수에 액세스할 수 있는 고유한 범위(또는 영역)가 있습니다.
프로그래밍에서 변수는 모두 동일하지 않습니다. 프로그램의 범위, 수명 및 접근성은 선언 위치와 방법에 따라 달라집니다. 범위에 따라 두 가지 유형의 변수가 있습니다.
- 지역 변수 – 이 변수의 범위는 변수가 선언된 블록 내에서만 존재합니다. 즉, 해당 블록 내에서만 이 변수에 접근할 수 있습니다. 전역 변수 - 전역 변수는 가능한 가장 넓은 범위를 가진 특수 유형입니다. 이는 모든 함수와 블록 외부, 프로그램 상단에서 선언됩니다. 프로그램의 어느 부분에서나 액세스할 수 있습니다.
C++의 전역 변수
전역 변수는 함수나 클래스 외부에서 선언되고 프로그램의 모든 부분에서 액세스할 수 있는 변수입니다. 일반적으로 헤더 파일 뒤의 소스 파일 시작 부분에 선언됩니다. 이는 프로그램 수명 내내 사용할 수 있으며 프로그램 내 어디에서나 액세스할 수 있습니다.
C++에서 전역 변수 선언
전역 변수를 생성하려면 소스 파일 상단, 헤더 파일 뒤, 메인 함수 앞에 선언하면 됩니다. C++에서는 모든 변수를 사용하기 전에 선언해야 합니다.
실시예 1
C++
// C++ Program to illustrate Global Variable> // header files> #include> using> namespace> std;> > // global variable> int> x = 10;>// x is a global variable initialized to 10> > // main function> int> main()> {> >cout << x;> >return> 0;> }> |
npm 클린 캐시 강제
>
>산출
10>
설명
데이터 독립성을 설명하다
- 이 예에서 'x'는 정수 값을 저장할 수 있는 전역 변수입니다.
- 프로그램이 시작되면 10으로 초기화됩니다.
- 함수나 클래스 외부에서 선언되므로 프로그램의 모든 함수나 클래스에서 액세스하고 수정할 수 있습니다.
이제 누군가는 왜 프로그램에서 전역 변수를 사용하려고 하는지 궁금해할 것입니다.
실시예 2
C++
// C++ program to illustrate> // usage of global variables> #include> using> namespace> std;> > // global variable> int> global = 5;> > // global variable accessed from> // within a function> void> display() { cout << global << endl; }> > // main function> int> main()> {> >display();> > >// changing value of global> >// variable from main function> >global = 10;> >display();> }> |
>
이진 트리의 후위 순회
>산출
5 10>
설명
- 이 예에서 'int global'은 정수 값을 저장하는 전역 변수입니다.
- 프로그램이 시작되면 5로 초기화되었습니다.
- 그 호출이 메인 함수로 이동한 후 전역 변수를 인쇄하는 디스플레이 함수를 호출합니다.
- 5를 인쇄한 후 전역 변수의 값은 10으로 변경됩니다. 이제 다시 표시 함수가 호출되고 전역 변수 10의 새 값이 인쇄됩니다.
전역 변수 사용의 이점
다음은 전역 변수가 제공하는 몇 가지 주요 이점입니다.
- 프로그램에서 인수를 전달하지 않고도 모든 함수에서 전역 변수에 직접 액세스할 수 있습니다.
- 전역 변수는 많은 함수가 동일한 변수에 액세스할 때 매우 유용합니다.
- 전역 변수는 프로그램에서 일회성 선언만 필요했습니다.
전역 변수 사용의 단점
전역 변수에도 몇 가지 단점이 있습니다. 그 중 일부는 다음과 같습니다:
- 일반적으로 멀티스레딩 프로그램에서 여러 프로그램이 동시에 전역 변수를 수정하려고 하면 전역 변수가 충돌 문제를 일으킬 수 있습니다.
- 때로는 변수 섀도잉이 발생할 수 있습니다.
- 전역 변수는 코드를 읽기 어렵고 유지 관리하기 어렵게 만들 수 있습니다.
- 또한 프로그램의 어느 부분에서나 수정되거나 액세스될 수 있으므로 보안 및 버그에 대한 우려가 있습니다.
- 때로는 전역 변수에 더 큰 숫자를 사용하면 프로그램에 오류가 발생할 가능성이 높습니다.
결론
전역 변수는 매우 유용하지만 C++ 프로그래밍 언어에서는 변수를 '추적하기 어렵습니다'. 프로그램의 어느 부분에서나 동일한 변수에 액세스할 수 있기 때문에 유용하지만, 코드를 읽기 쉽고 유지 관리하기 어렵게 만들지 않고 보안 측면도 고려하도록 사용해야 합니다. 따라서 전역 변수는 드물고 신중하게 사용하고 가능하면 지역 변수나 다른 대안을 선호하는 것이 좋습니다.