본문 바로가기

스터디/C++55

[ C++ ] 선행처리기 / 전처리기 ( Preprocess ) 다음 포스터인 inline에 들어가기 전에 C에서 배웠던 전처리기에 대해 복습하자. C++에서 컴파일되는 과정은 다음과 같습니다. "프로그래머가 작성한 소스파일은 가장 먼저 소스파일에 대한 처리를 하는 선행 처리기를 거치고, 컴파일되어 오브젝트 파일이 생성되고, 다시 링커에 의해 실행파일이 된다. " 즉, 전처리이자 선행 처리(Preprocess) 란? 실행 파일을 생성하는 과정에서 컴파일하기 전, 소스 파일 내에 존재하는 선행 처리 지시문을 처리하는 작업을 의미합니다. 또한, 선행 처리를 위한 명령에는#define,, #undef, #include, #if, #ifdef, #elif, #else 등 맨 앞에 #기호가 붙는다는 공통점이 있습니다. ( 선행처리를 위한 명령 = 전처리 문 = 전처리기 연산자.. 2019. 9. 5.
[ C++ ] 매개변수의 디폴트 값 ( Default Value ) '디폴트 값'이란 말 그대로 '기본적으로 설정되어 있는 값'을 의미한다. 그럼, 예를 보자. int FuncOne(int num = 7) { return num+1; } int FuncTwo(int num1 = 5, int num2 = 7) { returnn num1+num2; } FuncOne의 매개변수 선언이 다음과 같다. int num = 7 그리고 이는 다음의 의미를 가진다. "함수 호출 시 인자를 전달하지 않으면 7이 전달된 것으로 간주한다." 따라서 다음 두 함수 호출 문은 완전히 동일하다. FuncOne(); FuncOne(7); 이어서, FuncTwo를 보면.. int num1 = 5, int num2 = 7 또한 이는 다음의 의미를 가진다. "함수 호출 시 인자를 전달하지 않으면 num1.. 2019. 9. 5.
[ C++ ] 함수 오버로딩 ( Function Overloading ) C 언어에서는 다음과 같이 동일한 이름의 함수가 정의되는 것을 허용하지 않는다. 두 함수의 이름이 같이 때문에 컴파일 오류가 발생한다. int Func(int num) { num++; return num; } int Func(int a, int b) { return a+b; } 하지만 C++에서는 이러한 함수 정의 형태인 함수 오버 로딩 ( Function Overloading )을 지원해주고 있어서 함수 호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하다. int Func(int num) { num++; return num; } int Func(int a, int b) { return a+b; } int main(void) { Func(20); // Func(int num) 함수의 .. 2019. 9. 5.