본문 바로가기

카테고리 없음

Unreal 기초 C++ (4)(함수)

이번에는 함수에 대해 알아보겠습니다.

 

함수란 간단하게 코드를 담은 블록으로 이해하면 좋습니다.

 

블록은 전에 말했듯이

코드에서

{ } 중괄호입니다.

코드는 이 중괄호 안에 들어가있습니다.

 

언리얼은 아직 아니니 C++에서 코드를 디버깅하기위해서는 

int main(){

 

return 0;
}

main함수 중괄호 안에 코드들이 실행이되는겁니다.

 

함수는 여기 main안에 불려져야됩니다.

함수안에 함수를 생성 하는게아닌 중괄호 밖에서 함수를 생성하고 함수를 불러오는 겁니다.

 

구조는 아래와 같습니다.

 

반환형 함수이름(매개변수 매개변수명){

 

코드

return 반환값;

}

 

여기서는 이제 반환 이라는 개념이 있습니다.

함수는 코드를 담고있으면서도 또 추가로 값을 전달 할 수도 있습니다.

 

함수는 간단하게 코드를 담고있는 박스입니다. 내가 사용하고싶은 코드들을 저장 해두고 사용한다는 거죠

 

 

 

그런데

 

함수를 왜 사용하는지 즉 왜필요한지 생각해보면 간단합니다.

 

더하는 코드를 자주 사용할 거 같은데 내가 필요할때마다 그 더하는 코드를 작성한다면 코드의 양이 매우 많아지고 불필요해질겁니다.

 

아래 사용예시를 보면 이해가 편해질겁니다.

 

 

 

예)

 

 

int A(int a , int b){

std::cout<< "함수 A실행"<< std::endl;

return a + b;
}

// 숫자를 더해주기만 하는 코드가아니라 함수A 실행을 출력하고 a와 b까지 더해주는 코드입니다.

 

std::cout<< "함수 공부"<< std::endl;

 

int main(){

int z = 1;

int x = 2;

 

int c = 0;

int f = 5;

 

int a = A(z,x );

int b = A(c,f);

 

std::cout<< a<< std::endl;

std::cout<< b<< std::endl;

 

}

 

아직 클래스를 배우지 않았으니 따로 적진 않겠습니다. 

 

출력은 아래와 같겠죠

 

함수 공부

함수 공부

3

5

 

함수를 사용하면 여러코드를 적게는 한줄로 표현 가능하니 매우 좋습니다.
함수는 기능이 많습니다.

 

 그런데 아까 설명할때 반환형 함수이름 = (매개변수 이름);

 매개변수가 하나였는데 예시에서는 매개변수가 여러개네요??

매개변수는 여러개를 넣을 수 있습니다!! 그리고 매개변수가 없을 수 있어요

매개변수는 함수를 불러올때 매개변수가 있는 함수라면 매개변수 만큼 넣을 수있고 

없다면 매개변수를 넣을 수 없습니다! 여기 내용이 더있지만 그건 아직 배울 내용은 아닙니다.

 

이코드에서는 매개변수가 2개 였으니 2개를 넣은거죠 

그런데 매개변수형 을 잘봐야합니다.

int 매개변수는 int 변수만 됩니다

즉 매개변수를 맞춰줘야 됩니다 안그러면 오류날거에요.

 

만약 "내가 이렇게 반환 필요없이 내가 필요한코드만 실행시키고싶어!"

라고 생각 할 수 있습니다.

가능합니다!!

 

반환형에는 변수가 들어갑니다 그런데 여기서 void 라는게 있습니다.

반환값이 없는 함수를 만들 때 사용합니다.

 

함수 예를 볼까요

 

예 )

void A(){}

int B(){}

float C(){}

...

 

이렇게 반환형들을 만들 수있어요 string등 다른 변수도 됩니다.

 

아 그리고 반환없는 void 사용법은 간단해요

 

int main(){

A();

}

끝입니다 그냥 함수를 부르면 됩니다.

 

아!

함수 없으면 

안좋은 예시도 있어야겠지요?

 

 

std::cout<< "함수 공부"<< std::endl;

 

int main(){

int z = 1;

int x = 2;

 

int c = 0;

int f = 5;

 

std::cout<< "함수 A실행"<< std::endl;

int a = z + x;

std::cout<< "함수 A실행"<< std::endl;

int b = c + f;

 

std::cout<< a<< std::endl;

std::cout<< b<< std::endl;

 

}

 

 

네 똑같은걸 여러번 쓰니까 힘듭니다.

시간도 아깝고

 

다음은 클래스에 대해 공부해보겠습니다.