C++ 마지스터 4

C/C++ 개념: 전방 선언(forward declaration)

전방 선언(forward declaration) 1. 설명 함수나, 구조체, 열거자, 공용자, 외부(extern) 변수 (C++ 에서는 클래스도) 등을 그 실제 구현(implementation) 시점보다 앞서서 선언(declare)만 하는 것을 말합니다. 물론, 구현부와 선언부의 서명(signature)은 일치해야 합니다. 서로를 호출하는 함수, 외부(extern) 변수, PImple 기법 등에서 사용됩니다. 헤더와 소스 파일로 구현부, 선언부를 분리하는 행위는 기본적으로 모두 전방 선언에 속합니다. ※ main 함수보다 아래에서 구현된 함수를 호출할 때도 main 위에서 해당 함수를 전방 선언해야 합니다. 하지만 이런 케이스는 그냥 해당 함수를 main 위로 옮기면 되는 거라(원래는 다른 헤더 파일로 ..

C/C++ 개념: 완전한 타입(Complete Type), 불완전한 타입(Incomplete Type)

완전한 타입(Complete Type), 불완전한 타입(Incomplete Type) 1. 설명 완전한 타입이란, 해당 컴파일 시점에서 그 타입(구조체(struct), 열거자(enum), 공용체(union), 클래스(class))의 구현(Implement) 정보를 모두 알고 있는 타입을 말합니다. 위 4가지를 제외한 모든 타입은 무조건 완전한 타입입니다. 불완전한 타입이란, 해당 컴파일 시점에서 그 타입의 구현 정보를 알지 못하고, 선언된 정보만 알고 있는 상태를 말합니다. ※ 타입의 어떠한 정보도 알지 못하는건 그냥 알수 없는 타입(unknown type)이나 알수 없는 식별자(unknown identifier) 입니다. 보통 실수로 헤더를 넣지 않거나 했을 때 생깁니다. 2. 예시 #include s..

C 강좌 0강 - C 언어란?

0. 서론 C++ 강좌를 작성 하고 있었는데.. 하다 보니까 이게 도저히 C 강좌를 먼저 쓰지 않으면 진행이 안 되겠더군요. 기본적인 자료구조나 함수, 포인터들은 C 에서 그대로 물려받다 보니, 해당 부분들을 따로 부연설명 하려니 그것도 너무 사이즈가 켜져서.. 어차피 그런 부분들을 알면 C언어도 초급은 떼는 거나 마찬가지이니 그냥 C 강좌를 먼저 작성하는게 좋겠다고 생각이 드네요 프로그래밍을 처음 접하시거나, 다른 언어들을 접하시고 온 분들도 잘 이해할 수 있게 작성하는걸 목표로 잡았습니다. 본 강의에서는 C 언어의 기능이지만, 쓸일도 거의 없고 괜히 머리만 복잡해 지는 - 다차원 배열 포인터나 구조체의 비트필드 및 메모리 정렬 등 - 은 링크로 빼 놓았으니, 링크는 굳이 들어가 보시지 않으셔도 됩니다..