함수
함수 (Functions)
함수는 C 언어에서 복합 문(함수 본문)을 식별자(함수 이름)와 연결하는 구성 요소예요. 모든 C 프로그램은 main 함수에서 실행을 시작하는데, main은 종료되거나, 사용자 정의 함수나 라이브러리 함수 같은 다른 함수를 호출해요.
// function definition.
// defines a function with the name "sum" and with the body "{ return x+y; }"
int sum(int x, int y)
{
return x + y;
}
함수는 0개 이상의 매개변수를 받을 수 있는데, 매개변수는 함수 호출 연산자의 인자로부터 초기화돼요. 그리고 return 문으로 호출자에게 값을 돌려줄 수 있어요.
int n = sum(1, 2); // parameters x and y are initialized with the arguments 1 and 2
함수 본문은 함수 정의에서 제공돼요. C99부터는 non-inline 함수로, 어떤 표현식에서(평가되지 않는 경우 제외) 쓰이는 함수는 프로그램에서 딱 한 번만 정의돼야 해요.
중첩 함수는 없어요(비표준 컴파일러 확장이 허용하는 곳 제외). 각 함수 정의는 파일 스코프에 나타나야 하고, 함수는 호출자의 지역 변수에 접근할 수 없어요.
int main(void) // the main function definition
{
int sum(int, int); // function declaration (may appear at any scope)
int x = 1; // local variable in main
sum(1, 2); // function call
// int sum(int a, int b) // error: no nested functions
// {
// return a + b;
// }
}
int sum(int a, int b) // function definition
{
// return x + a + b; // error: main's x is not accessible within sum
return a + b;
}
더 알아보기
- 함수 선언과 함수 정의 문서를 잇달아 보면 함수의 전체 구조가 잡혀요.
- 가변 인자 함수와
inline에 대해 더 알고 싶다면 관련 문서를 참고하면 좋아요. - cppreference의 함수 원문에서 최신 표준 변경을 확인할 수 있어요.