문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 C언어/문법 (문단 편집) == 함수 == 함수는 C언어에서 처리하는 명령이다. 기본적으로 이렇게 생겼다, ||{{{#blue,#0000ff 함수 이름}}}(입력 인자);[* ;때문에 c언어에 익숙하지 않은 사람들이 많이 고통을 받는다. int main(); 이라는 말도 생겼을 정도.]|| 함수 원형부를 포함한 함수 바디라인은 이렇게 정의한다. {{{#!syntax cpp [함수 지정자] [출력 자료형] [함수 이름](입력 인자) { [함수 내용] } }}} 예를 들어, 두 수를 입력 받아 그 수의 합을 돌려 주는 함수는 이렇게 생겼다. {{{#!syntax cpp int sum(int a, int b) { return a+b; } }}} 위 코드에서 알 수 있듯이, return은 '''그 뒤에 있는 값을 결과물로 내보내고, 함수를 끝낸다.''' 한편, 함수에서 return한 값을 받는 방법은 다음과 같다. {{{#!syntax cpp int num; num = sum(3,5); }}} 이 경우, {{{num}}}에는 8이 저장된다. GCC C99 기준 자료형을 명시하지 않을 경우 int로 처리되며 return 문이 없으면 쓰레기 값을 반환한다. 함수 지정자는 필수가 아닌 옵션이며 함수의 특성을 지정한다. 여기에는 {{{inline}}}, {{{static}}}, {{{extern}}}이 포함된다. {{{#!syntax cpp extern void MyExternFunction(){...} // 소스코드 내에 함수가 정의되어 있다면 해당 함수의 심볼이 바이너리의 export 테이블에 노출되며 .dll, .so와 같은 라이브러리의 형태를 띄고 있을 경우 외부에서 해당 함수에 접근이 가능하다. 만약 함수의 내용이 정의되어 있지 않고 형태만 선언되어 있다면 외부에서 심볼을 찾아서 링크한다. static void MyStaticFunction(){...} // 스태틱 함수를 선언한다. static 함수는 외부에서 접근하지 못한다. inline void MyInlineFunction(){...} // [[인라인 함수]]를 선언한다. Static과 달리 컴파일러가 상황에 따라서 해당 함수의 내용을 별도의 스택프레임을 생성하지 않고 한 코드에 포함시킨다. }}}저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기