프로그래밍 언어/C·C++

    [C++] 3. 기본 제공 코드 분석

    [C++] 3. 기본 제공 코드 분석

    비주얼 스튜디오가 기본 제공하는 소스 코드는 위와 같이 생겼다. 이 상태에서 F5 버튼을 누르면 비주얼 스튜디오는 다음과 같은 일을 해준다. 1. 소스 코드에 전처리, 컴파일링, 어셈블링, 링킹을 해서 실행 파일을 생성한다. 2. 생성된 실행 파일을 실행한다. 이제 기본 제공 소스 코드가 어떤 의미를 갖고 있는지 간단하게 분석해보자. 주석 위 소스 코드에서 초록 글씨로 표시된 부분을 주석이라고 한다. 주석은 // 또는 /* */ 기호를 사용해서 만들 수 있다. 주석 처리된 부분은 실행 파일에 포함되지 않는다. 정확히 말하자면 전처리를 할 때 전부 삭제된다. 즉, 전처리를 통해 주석이 전부 지워지고 나면 위의 코드는 아래와 같이 변경된다. #include int main() { std::cout

    [C++] 2. Visual Studio 사용해보기

    [C++] 2. Visual Studio 사용해보기

    C++ 문법에 맞게 작성한 코드를 실행하기 위해서는 컴파일러가 필요하다. 근본적으로 컴퓨터는 0과 1만을 이해할 수 있다. 사람이 이해하기 쉽게 작성된 C++ 코드는 이해할 수 없는 것이다. 그렇기 때문에 C++ 문법에 맞게 작성한 코드를 0과 1로 이루어진 기계어로 번역하는 과정이 필요하고 이를 컴파일이라고 한다. 그리고 이런 컴파일 작업을 수행해주는 프로그램을 컴파일러라고 한다. 대표적인 C++ 컴파일로는 gcc와 g++가 있다. 하지만, 컴파일러를 직접 설치하고 사용하는 것은 굉장히 번거로운 일이다. gcc를 사용한다면 매번 컴파일에 사용할 소스 코드들을 지정하고 생성할 결과물 파일을 지정하는 명령어를 입력해 줘야 한다. IDE(Integrated Development Environment)를 사용..

    [C++] 1. 왜 게임 업계에서는 C++을 쓰는 걸까?

    [C++] 1. 왜 게임 업계에서는 C++을 쓰는 걸까?

    게임 개발자는 결국 언리얼, 유니티, 자체 엔진 중 하나를 써서 게임을 만들게 된다. 이 중 언리얼을 사용하는 경우 C++로 스크립트를 작성하게 된다. 유니티를 사용하는 경우 C#으로 스크립트를 작성하게 되지만, 유니티 자체는 C++로 만들어져 있으며 IL2CPP로 빌드하면 유저가 입력한 C# 코드도 C++ 코드로 변환된다. 자체 엔진을 사용하는 경우에도 마찬가지로 C++로 코드를 작성하게 될 가능성이 높다. 게임 업계에서 C++을 사용하는 경우가 대부분이기 때문에 게임 개발자는 결국 C++을 배울 수밖에 없다. 여기서 궁금해질 수밖에 없는 부분은 "왜 게임 업계에서는 C++을 사용하는가?" 이다. 이 이유를 알기 위해서는 프로그래밍 언어의 발전 과정에 대해 알아 볼 필요가 있다. 프로그래밍 언어의 발전..

    Array에 대한 몇 가지 사실

    Array에 대한 몇 가지 사실

    1. a[b]의 의미 int arr[] = {1, 2, 3}; printf("%d", arr[3]); C언어에서는 이런 코드를 작성해도 index out of range error가 따로 발생하지 않는다. 이런 현상이 발생하는 이유는 C언어에서 a[b]가 *(a+b) 연산에 대한 proxy이기 때문이다. (물론, 선언부에서의 a[b]는 변수 a가 크기 b인 배열임을 의미한다.) 이 사실은 다음 코드에서 확인할 수 있다. int arr[3] = {1, 2, 3}; printf("%d\n", arr[2]); printf("%d\n", *(arr+2)); printf("%d\n", 2[arr]); printf("%d\n", *(2+arr)); int *p = arr; printf("%d\n", p[2]); p..