프로그래밍79 [C++] 복습용 키워드 정리 - 7 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어 혹은 컴퓨터 언어로 옮기는 일종의 번역 프로그램이다. 비주얼, 터보, 볼랜드 등 언어에 따라 다양한 컴파일러가 존재하고 보통 high-level 프로그래밍 언어를 실행 프로그램으로 만들기 위한 lower level 언어(ex. 어셈블리 언어, object 코드 등)로 바꾸는 데에 사용된다. 컴파일 되기 전의 원래의 문서를 '소스 코드' 혹은 '원시 코드'라고 부른다. 이후 컴파일이 된 후 출력된 문서를 '목적 코드'라고 한다. 컴파일은 최초 코드의 구문을 분석하고 오류가 있다면 사용자에게 전달하며, 명확하지 않은 추상 구문을 분석 및 최적화하고 이후에 오류가 없는 코드를 목적 코드로 생성한 뒤 여러 라이브버리의 목적 코드를 연결하는 링킹 과정.. 2023. 3. 25. [C++] 복습용 키워드 정리 - 6 정적할당이라는 개념이 있다. 정적할당은 컴파일 과정에서 메모리에 공간이 할당되어 변수가 사용하는 것으로 프로그램이 시작된 이후에 변경이 불가능하고, 해제는 프로그램의 종료와 함께 이뤄진다. 하지만 프로그램 도중, 즉 런타임 중에 공간을 할당하고 해제하고 싶은 경우에는 이 방법을 사용할 수 없다. 여기서 나온 것이 바로 동적할당이다. 동적으로 공간을 할당하여 런타임 중에 개발자가 원하는 타이밍에 할당을 하고 해제를 할 수 있다는 것이 장점이다. 하지만 할당하는 과정에서 일어나는 퍼포먼스 저하가 있기 때문에 대용량의 공간을 할당할 필요가 있을 경우에는 동적할당이 맞지 않는다. 또한 인위적으로 할당을 해줬기 때문에 반드시 해제를 해줘야 하며, 해제를 하지 않을 경우 메모리 공간에 쓸 데 없이 사용되는 공간이 .. 2023. 3. 22. [C++] 복습용 키워드 정리 - 5 struct 키워드를 사용하여 선언한다. 구조체는 다른 말로 사용자 정의 자료형이라고 한다. 특정 자료형들을 묶어서 사용자 자료형으로 정의를 하면 해당 구조체를 일반적인 자료형처럼 변수로 선언이 가능하다. 여기서 더 나아가 c++에서는 클래스라는 개념으로 확장이 된다. 구조체는 일반적으로 연산자 호출이 불가능하기 때문에 대입, 비교, 증가/감소와 같은 연산자들을 오버로딩하여 재정의를 해주어야 기능을 한다. 바이트 패딩이라고 하는 기법인데, 이는 구조체(클래스)에 패딩 바이트를 추가하여 CPU의 접근을 더욱 용이하게 해주는 기법이다. 특정 구조체를 읽어올 때, 내부에 존재하는 멤버 변수가 서로 다른 자료형으로 구성이 되어 있을 경우, 어디까지가 자료형의 경계인지 확인할 수 없다. 가령 구조체 Temp에는 .. 2023. 3. 14. [C++] 복습용 키워드 정리 - 4 c에서 사용자 정의 타입을 구조체라고 부른다. 원하는 자료형들을 묶어 사용자가 정의한 자료형으로 선언하는 것이다. 이것이 c++로 넘어오면서 클래스(class)라는 이름을 가지게 된다. 클래스는 구조체와 본질적으로 구조가 같다. 내부에 사용자가 원하는 자료형들을 묶어서 클래스로 선언한다. 여기서 클래스 내부에 선언된 변수들을 멤버 변수라고 한다. 클래스가 가진 변수들을 의미하는 것이다. 또한, 클래스는 변수 이외에 함수를 멤버로 가질 수 있다. 이를 멤버 함수라고 하며 이 함수는 클래스 내부에서 각 객체에 접근하여 객체 별로 함수를 수행할 수 있게 해준다. 멤버 변수와 함수로 인해 클래스는 객체 지향 프로그램(OOP)를 수행할 수 있는 것이다. 특정 값, 혹은 간단한 함수를 사용할 때, 매번 값을 설정하.. 2023. 3. 13. 이전 1 ··· 10 11 12 13 14 15 16 ··· 20 다음