Prosto
인라인 함수 공부에 앞서 C의 매크로 함수에 대한 어느정도의 지식이 필요합니다. (매크로 함수의 장점, 단점.. 매크로 함수의 기능 ....) 간단하게 말하면, C의 매크로 함수는 함수 정의를 사용한 경우와 다르게 간단하게 처리를 하여, 성능의 향상을 주는 장점이 있고, 단점으로는 디버깅의 어려움, 함수 정의 방식이 일반함수에 비하여 더 복잡하다는 것이죠. 간단한 코드. #define SQUARE(X) ((X)*(X)) int main(void) { printf("%d \n", SQUARE(5)); return 0; } 위 코드에서 SQUARE(5)가 들어간 자리는 ((5)*(5))로 치환되어 실행됩니다. 인라인 함수는 그러한 매크로 함수의 장점을 이용하여 프로그램의 성능 향상을 위하여 새로 도입된 키워..
C++에서는 매개변수의 디폴트 값을 줄 수 있습니다. int Func(int num=10) { ... } 이라는 함수가 정의되어 있을 경우. main 함수에서 이 함수를 사용할 때 int main() { ... Func(); Func(10); ... } 인자를 전달 하지 않아도, num=10이라는 값을 디폴트 값으로 전달 받도록 합니다. 그러므로, 위의 Func();와 Func(10);은 같은 의미를 가지게 됩니다. 같은 의미로 int Func(int num=10, int num2=20) { ... } 이라는 함수가 정의되어 있을 경우. main 함수에서 이 함수를 사용할 때 int main() { ... Func(); Func(10); Func(10, 20); ... } 인자를 전달 하지 않아도, nu..
C++에서는 C와 다르게 함수 오버로딩이 가능합니다. (같은 이름의 함수를 재정의하고 사용할 수 있습니다.) 이는 int Func() {} int Func(int a) {} int Func(int a, int b) {} int Func(char a) {} 와 같은 형식이 가능한 것입니다. (이름은 같지만 매개 변수형이나 인수 갯수가 다른 함수.) C에서는 컴파일에러가 발생되겠지만, C++에서는 정상적으로 실행됩니다. 그 이유는 C에서와 다르게 C++에서는 함수를 (이름 + 전달인자)로 확인하기 때문입니다. 하지만, int Func() {} void Func() {} 와 같이 반환형만이 다른경우는 불가능합니다. (이름과 전달인자로 확인하고 사용되기 때문.)