본문 바로가기

C++ & UNREAL

C++ 기능 배우기 5 (함수)

함수

함수에 필요한 조건들

1. 함수 정의 제공

2. 함수 원형 제공

3. 함수 호출

(반환형) 함수이름(입력형 입력변수명){
    //code
}

 

 

반환형 함수명(입력형)

 

형태로 미리 선언해두고 사용 가능.

 

 

배열을 인자로 받을 시 첫 원소의 주소를 받음

int numArr(int* arr, int* end){
    int total = 0;
    for (int* i=arr; i != end; i++){
        total += *i;
    }
    return total;
}

 

 

구조체는 그 자체로 전달시 값이 복사되어 전달됨.(원본에 영향 안줌)

너무 크다면 구조체를 포인터로 전달시 복사를 안해서 시간적 이득.(간접 연산자인 -> 로 구조체에 접근해야함)

 

 

 

함수의 포인터

함수도 주소를 가지고 있음.

어떠한 함수에 함수의 주소를 매개변수로 넘겨주는 경우 유용하게 사용 가능

1. 함수의 주소를 얻는다.

2. 함수를 지시하는 포인터를 선언한다.

3. 함수를 지시하는 포인터를 사용하여 그 함수를 호출한다.

 

int func(int n){
    return n + 1;
}


int main(){
    int (*pf)(int);
    pf = func;
    
    cout << (*pf)(3) << endl;
    
    return 0;
}

이렇게 함수의 주소를 가지고 사용 가능.