본문 바로가기

C++/윤성우 열혈 C++ 프로그래밍4

01-4 인라인 함수(inline function) 매크로 함수 장점 매크로 함수는 컴파일 이전에 선행처리기에 의해 미리 소스코드의 일부를 수정해주는 역할을 한다. 일반 함수는 스택 영역에 변수가 저장되고, PC register가 이동하면서 코드를 처리하고 return문에 의한 값의 반환 후 stack 영역의 데이터들이 지워지고 PC register가 main 함수의 다음 위치로 이동하는 등의 작업이 필요하다. 하지만, 매크로 함수는 이러한 과정을 모두 생략하기 때문에 일반 함수보다 속도적인 이점이 있다. 또한 매개변수의 자료형을 지정해주지 않아도 되기 때문에 정의가 간편하다. 단점 if - else문 등과 같이 조금이라도 복잡한 작업을 매크로 함수로는 처리를 하기가 까다롭다. 컴파일시 매크로 함수의 오류를 컴파일러가 인식할 수 없기 때문에 디버깅이 까다.. 2021. 9. 26.
01-3 매개변수의 디폴트 값 C++의 함수에는 매개변수의 기본 값을 뜻하는 default value를 설정해줄 수 있다. 인자를 전달하지 않으면 디폴트 값으로 매개변수가 초기화 된다. 때문에 default value가 설정되어 있으면 함수의 매개변수의 개수보다 적은 수의 매개변수를 전달해도 함수가 작동한다. 단, 전달되는 매개변수는 왼쪽으로부터 채워진다. #include int Adder(int num1=1, int num2=2) { return num1+num2; } int main(void) { std::cout 2021. 9. 26.
01-2 함수 오버로딩 함수 오버로딩(Function Overloading)의 이해 C언어에서는 호출할 함수를 찾을 때 함수명 만으로 찾기 때문에 동일한 이름의 함수가 정의되는 것을 허용하지 않는다. 하지만, C++에서는 호출할 함수를 찾을 때 함수명과 매개변수의 형태까지 고려하기 때문에 매개변수 선언형태가 다르다면, 동일한 이름의 함수를 선언하는 것을 허용한다. 이를 함수 오버로딩이라고 한다. 함수 오버로딩은 매개변수의 개수가 다르거나, 매개변수의 자료형이 다를 경우에 가능하다. 하지만, 함수 호출시 반환형까지 고려하지는 않기 때문에 반환형의 자료형을 통해 함수 오버로딩을 하는 것은 불가능하다. # MyFunc의 매개변수의 선언형태가 다름. 오버로딩 가능 int MyFunc(int num) { num++; return num.. 2021. 9. 26.
01-1 Printf와 Scanf를 대신하는 입출력 방식 헤더파일 선언문 헤더파일의 확장자는 .h이다. 하지만 C++에서는 표준 헤더파일(반대 : 프로그래머 정의 헤더파일) 선언에서는 확장자 생략 이는 과거의 표준 라이브러리와 새로운 표준 라이브러리를 구분하기 위해서이다. std::cout과 2021. 9. 26.