C++ 프로그래밍에서 함수는 코드의 재사용성과 가독성을 높이는 중요한 요소입니다. 이번 포스트에서는 함수의 기본적인 사용법과 함께 예제 코드를 분석해 보겠습니다.
#include <iostream>
using namespace std;
// 함수의 프로토타입 선언
int csum(int x, int y);
int cabs0(int x);
int cabs1(int x);
int abssum(int x, int y)
{
// cabs0, cabs1, csum에 대한 선언이 필요하다.
// abssum 입장에서는 cabs0, cabs1, csum
int ax = cabs0(x);
int ay = cabs1(y);
return csum(ax, ay);
}
int csum(int x, int y)
{
return x + y;
}
int cabs0(int x)
{
return x >= 0 ? x : -x;
}
int cabs1(int x)
{
if (x >= 0)
return x;
else
return -x;
}
void print0(int x, int y)
{
cout << x << endl;
if (y < 0)
return; // 함수 종료 시 return을 사용할 수 있다
cout << y << endl;
}
void print1(void) // 인자가 없는 경우 void를 생략할 수 있다
{
cout << "Hello World" << endl;
}
int main(int argc, char* arvc[])
{
{
// main 함수의 반환
// 0 : 정상 종료
// 0아 아님 : 비정상 종료
//return 0;
}
{
// 실행 시 넘겨진 인자 출력
// 0번에는 실행한 파일명 출력
for (int i = 0; i < argc; ++i)
{
cout << arvc[i] << endl;
}
}
{
// 사용자 정의 함수 사용
cout << csum(5, 10) << endl;
cout << cabs0(10) << endl;
cout << cabs1(-10) << endl;
}
}
헤더 파일 포함 및 네임스페이스 사용
#include <iostream>
using namespace std;
#include <iostream>
: 표준 입력 출력 스트림을 포함합니다.using namespace std;
: std::
를 생략하고 표준 라이브러리의 요소를 사용할 수 있게 합니다.함수 프로토타입 선언
int csum(int x, int y);
int cabs0(int x);
int cabs1(int x);
함수 정의
abssum
함수: 두 정수의 절댓값을 더한 결과를 반환합니다.int abssum(int x, int y)
{
int ax = cabs0(x);
int ay = cabs1(y);
return csum(ax, ay);
}
csum
함수: 두 정수의 합을 반환합니다.int csum(int x, int y)
{
return x + y;
}
cabs0
함수: 정수의 절댓값을 반환합니다 (삼항 연산자 사용).int cabs0(int x)
{
return x >= 0 ? x : -x;
}
cabs1
함수: 정수의 절댓값을 반환합니다 (if 문 사용).int cabs1(int x)
{
if (x >= 0)
return x;
else
return -x;
}
출력 함수
print0
함수: 두 정수를 출력하고, 두 번째 정수가 음수일 경우 함수 종료.
void print0(int x, int y)
{
cout << x << endl;
if (y < 0)
return;
cout << y << endl;
}
print1
함수: "Hello World" 문자열을 출력합니다.
void print1(void)
{
cout << "Hello World" << endl;
}
main 함수
int main(int argc, char* arvc[])
{
{
// main 함수의 반환
// 0 : 정상 종료
// 0아 아님 : 비정상 종료
//return 0;
}
{
// 실행 시 넘겨진 인자 출력
// 0번에는 실행한 파일명 출력
for (int i = 0; i < argc; ++i)
{
cout << arvc[i] << endl;
}
}
{
// 사용자 정의 함수 사용
cout << csum(5, 10) << endl;
cout << cabs0(10) << endl;
cout << cabs1(-10) << endl;
}
}
함수의 선언과 정의
절댓값 함수의 다양한 구현
cabs0
과 cabs1
은 같은 기능을 하지만 구현 방식이 다릅니다. cabs0
은 삼항 연산자를, cabs1
은 if 문을 사용합니다.main 함수의 구조
argc
와 arvc
를 사용하여 프로그램 실행 시 전달된 인자를 처리할 수 있습니다.프로그램의 종료 코드
return 0;
을 사용하여 정상 종료를, 0이 아닌 값을 반환하여 비정상 종료를 나타냅니다.