[C++] 09. 다양한 함수들

2022. 5. 30. 21:34코딩 1막 <C++개념편>

728x90

1. <Clamp함수를 써서 value의 최대/최소 바꾸기>

#include <iostream>

using namespace std;

//value값 최소/최대 바꾸기
//실제 게임에서 캐릭터가 더이상 이동하지 못하게 활동범위를 제한할때 자주 사용한다.

int Clamp(int* Ptr, int min, int max)
{
if (*Ptr > max)
{
*Ptr = max;
}
if (*Ptr < min)
{
*Ptr = min;
}
return *Ptr;
}

void main()
{
int value = 100;
Clamp(&value, 0, 50);
cout << value << endl;
}

출력 결과

2. Clamp함수 2번째 예제

#include 

using namespace std;

float Sum(float a, float b)
{
return a + b;
}

float Clamp(float* valuePtr, float min, float max)
{
if (*valuePtr > max)
{
*valuePtr = max;
}
else if (*valuePtr < min)
{
*valuePtr = min;
}
return *valuePtr;
}


void main()
{
float num = -450;

cout << Sum(10, Clamp(&num, -100, 100)) << endl;
cout << num << endl;
}

출력 결과

3. <Swap함수>

#include <iostream>

using namespace std;


// 포인터함수를 사용한 Swap함수
// call by value : 값에 의한 참조
void Swap(int inputA, int inputB)
{
int temp;
temp = inputA;
inputA = inputB;
inputB = temp;
}

// call by address : 주소에 의한 참조
void Swap(int* aPtr, int* bPtr)
{
int temp;
temp = *aPtr;
*aPtr = *bPtr;
*bPtr = temp;
}

void main()
{
int a = 10;
int b = 30;

cout << a << "," << b << endl;
Swap(&a, &b); // a의 주소와 b의 주소를 함수에 보내준다
cout << a << "," << b << endl;
}

출력 결과

4. <Sum함수>

#include <iostream>
using namespace std;

int Sum(int inputA, int inputB)
{
return inputA + inputB;
}

void main()
{
int a = 10;
int b = 30;

cout << Sum(a, b) << endl;
}

출력 결과

728x90