초기화(프로그래밍)

Initialization (programming)

컴퓨터 프로그래밍에서 초기화(또는 초기화)는 데이터 객체나 변수에 대한 초기값을 할당하는 것이다.초기화가 수행되는 방법은 초기화할 객체의 유형, 저장 클래스 등 프로그래밍 언어에 따라 달라진다.초기화를 수행하는 프로그래밍 구조를 일반적으로 이니셜라이저이니셜라이저 목록이라고 한다.비록 두 가지가 실제로 혼동될 수 있지만, 초기화는 (그리고 그 뒤에) 선언과는 구별된다.초기화를 보완하는 것은 최종화(finalization)인데, 이는 주로 객체에 사용되지만 변수는 아니다.

초기화는 컴파일 시간에 값을 정적으로 내장하거나 런타임에 할당하여 수행된다.이러한 초기화를 수행하는 코드의 섹션은 일반적으로 "초기화 코드"로 알려져 있으며, 파일 열기 등의 다른 일회성 기능을 포함할 수 있다. 객체 지향 프로그래밍에서 초기화 코드는 생성자(클래스 방법) 또는 이니시에이터(인스턴스 방법)의 일부일 수 있다.메모리 위치를 16진수 0으로 설정하는 것을 "지우기"라고도 하며 추가 메모리 액세스가 필요하지 않기 때문에 컴퓨터 코드 수준에서 독점적 또는 명령(두 피연산자가 동일한 변수를 지정함)에 의해 수행되는 경우가 많다.

C 언어군

이니셜라이저

C/C99/C++에서 이니셜라이저선언기의 선택적 부분이다.'=' 문자에 이어 식 또는 쉼표로 구분된 식 목록으로 구성되며, 곱슬 괄호(브레이스)로 배치된다.후자 목록은 "initializer list" 또는 "initialization list"라고 부르기도 한다("initializer list"라는 용어는 C++에서 클래스/구조 멤버의 초기화를 위해 공식적으로 예약되어 있지만, 아래를 참조).단순히 데이터 객체를 설명하는 것이 아니라 데이터 객체를 만드는 선언은 일반적으로 정의라고 불린다.

많은 사람들은 선언과 정의의 구별에서 흔히 볼 수 있는 "선언과 정의의 구별..."에서처럼 "선언"과 "정의"라는 용어를 구별하는 것이 편리하다고 생각하는데, 이는 선언이 단지 데이터 객체(또는 함수)를 지정하는 것임을 암시한다.사실 C++ 기준에 따르면 정의는 선언이다.그래도 공식적으로는 틀리지만 '선언과 정의'라는 용어는 흔하다.[1]모든 정의가 선언이지만 모든 선언이 정의가 되는 것은 아니다.

C 예제:

인트로 i = 0; 인트로 k[4] = {0, 1}; 마를 뜨다 tx[3] = 'a'; 마를 뜨다 ty[2] = 'f'; 구조상의 포인트 {인트로 x; 인트로 y;} p = { .y = 13, .x = 7 }; 

C++ 예제:

인트로 i2(0); 인트로 j[2] = {랜드(), k[0]}; 마이클래스* 엑스옥스 = 새로운 마이클래스(0, "자자"); 점을 찍다 q = {0, i + 1}; 

이니셜라이저 목록

C++에서, 클래스/구조물의 생성자는 정의 내에서 생성자 본체 앞에 이니셜라이저 목록을 가질 수 있다.초기화 목록을 사용할 때는 값이 변수에 할당되지 않는다는 점에 유의하십시오.그것들은 초기화되었다.아래 예에서 0은 re와 im으로 초기화된다.예:

구조상의 인트콤플렉스 {   인트콤플렉스() : (0), 나는(0) {}    인트로 ;   인트로 나는; }; 

여기서, 구성 : re(0), im(0)이니셜라이저 목록이다.

때때로 "초기화기 목록"이라는 용어는 배열이나 구조화 이니셜라이저의 식 목록을 참조하는 데에도 사용된다.

C++11은 템플릿(template)을 통해 이니셜라이저 목록의 보다 강력한 개념을 제공한다.std::divizer_list.

기본 초기화

데이터 초기화는 프로그램에서 명시적인 구문 없이 발생할 수 있다.예를 들어, 이니셜라이저 없이 정적 변수를 선언하는 경우 원시 데이터 유형의 변수는 해당 유형의 0 값으로 초기화되는 반면, 클래스 유형의 정적 객체는 기본 생성자로 초기화된다.

참고 항목

참조

  1. ^ C++ 질문과 대답(Cline, Lomow 및 Girou, Addison-Wesley, 1999), ISBN0-201-30983-1.