본문 바로가기

프로그래밍/키워드 정리10

[C++] 복습용 키워드 정리 - 6 정적할당이라는 개념이 있다. 정적할당은 컴파일 과정에서 메모리에 공간이 할당되어 변수가 사용하는 것으로 프로그램이 시작된 이후에 변경이 불가능하고, 해제는 프로그램의 종료와 함께 이뤄진다. 하지만 프로그램 도중, 즉 런타임 중에 공간을 할당하고 해제하고 싶은 경우에는 이 방법을 사용할 수 없다. 여기서 나온 것이 바로 동적할당이다. 동적으로 공간을 할당하여 런타임 중에 개발자가 원하는 타이밍에 할당을 하고 해제를 할 수 있다는 것이 장점이다. 하지만 할당하는 과정에서 일어나는 퍼포먼스 저하가 있기 때문에 대용량의 공간을 할당할 필요가 있을 경우에는 동적할당이 맞지 않는다. 또한 인위적으로 할당을 해줬기 때문에 반드시 해제를 해줘야 하며, 해제를 하지 않을 경우 메모리 공간에 쓸 데 없이 사용되는 공간이 .. 2023. 3. 22.
[C++] 복습용 키워드 정리 - 5 struct 키워드를 사용하여 선언한다. 구조체는 다른 말로 사용자 정의 자료형이라고 한다. 특정 자료형들을 묶어서 사용자 자료형으로 정의를 하면 해당 구조체를 일반적인 자료형처럼 변수로 선언이 가능하다. 여기서 더 나아가 c++에서는 클래스라는 개념으로 확장이 된다. 구조체는 일반적으로 연산자 호출이 불가능하기 때문에 대입, 비교, 증가/감소와 같은 연산자들을 오버로딩하여 재정의를 해주어야 기능을 한다. 바이트 패딩이라고 하는 기법인데, 이는 구조체(클래스)에 패딩 바이트를 추가하여 CPU의 접근을 더욱 용이하게 해주는 기법이다. 특정 구조체를 읽어올 때, 내부에 존재하는 멤버 변수가 서로 다른 자료형으로 구성이 되어 있을 경우, 어디까지가 자료형의 경계인지 확인할 수 없다. 가령 구조체 Temp에는 .. 2023. 3. 14.
[C++] 복습용 키워드 정리 - 4 c에서 사용자 정의 타입을 구조체라고 부른다. 원하는 자료형들을 묶어 사용자가 정의한 자료형으로 선언하는 것이다. 이것이 c++로 넘어오면서 클래스(class)라는 이름을 가지게 된다. 클래스는 구조체와 본질적으로 구조가 같다. 내부에 사용자가 원하는 자료형들을 묶어서 클래스로 선언한다. 여기서 클래스 내부에 선언된 변수들을 멤버 변수라고 한다. 클래스가 가진 변수들을 의미하는 것이다. 또한, 클래스는 변수 이외에 함수를 멤버로 가질 수 있다. 이를 멤버 함수라고 하며 이 함수는 클래스 내부에서 각 객체에 접근하여 객체 별로 함수를 수행할 수 있게 해준다. 멤버 변수와 함수로 인해 클래스는 객체 지향 프로그램(OOP)를 수행할 수 있는 것이다. 특정 값, 혹은 간단한 함수를 사용할 때, 매번 값을 설정하.. 2023. 3. 13.
[C++] 복습용 키워드 정리 - 3 상수는 변하지 않는 값을 의미한다. int a = 10에서 10은 a는 변수, 10은 상수이다. 따라서 변수값에 const를 붙이면 이 변수는 변하지 않는 값을 사용한다는 의미가 된다. 때문에 const를 붙인 변수는 선언과 동시에 초기화를 해주어야 한다. 함수에서 매개 변수로 특정 변수를 받아올 때, 값의 수정을 원치 않으면 const를 붙여 상수화 해주면 매개 변수로 값을 받아와도 이 값은 변하지 않게 된다. 이 상수는 포인터 변수에 사용을 할 때 사용법이 조금 달라진다. int* a라는 포인터 변수는 &Value라는 값을 가지고 있다. 이 포인터 변수가 만약 const int* a가 된다면 a가 가지고 있는 주소가 참조하는 값에 대한 상수화가 되기 때문에 값을 변경할 수 없다. 하지만 포인터 변수 .. 2023. 3. 12.