이번에는 함수에 대해 알아보겠습니다.
함수란 간단하게 코드를 담은 블록으로 이해하면 좋습니다.
블록은 전에 말했듯이
코드에서
{ } 중괄호입니다.
코드는 이 중괄호 안에 들어가있습니다.
언리얼은 아직 아니니 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;
}
네 똑같은걸 여러번 쓰니까 힘듭니다.
시간도 아깝고
다음은 클래스에 대해 공부해보겠습니다.