게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
프로그래밍 언어란? - 6
게시물ID : programmer_12212짧은주소 복사하기
작성자 : 구차니
추천 : 2
조회수 : 846회
댓글수 : 13개
등록시간 : 2015/07/20 12:29:01
오늘은 함수군요. 다른 말로는 부 프로그램, 서브루틴
함수는 일을 하는 단위입니다.

생긴건
int function_name(int a, int b)
{
// TODO
 return 0;
}
리턴이 필요 없는 action 위주의 함수들도 있지만
대부분의 경우 action에 대해서도 정상 작동을 했는지 아닌지에 대한 error를 돌려주도록 권고합니다.

물론 하나의 entry point(c로 치면 mainI())에 다 때려 박아도 되지만
굳이 왜 함수를 써서 귀찮게 할까요?

가장 큰 이유는 프로그램의 재사용을 위해서 입니다.
재사용은 동일한 루틴을 값만 바꾸어서 사용하는 것이고
프로그램 곳곳에서 동일하게 입력되는 값만 바꾸어서 사용이 가능하다면
반복적으로 코드를 쓰지 않아도 되서
실행파일의 용량을 줄이는데에도 용이합니다.

다만 성능 향상을 위해
(함수는 다른 곳에 있는 녀석이라 현재 실행 정보를 램에 저장하고 새로운 파일을 읽고 실행하는 개념입니다)
inline 키워드를 통해 함수를 풀어 사용할 수 도 있습니다.



+
피보나치 수열을 통해 "재귀함수"를 구현할때 많이 듣는 이야기로 "스택이 넘친다는 것"을 들을수 있는데
스택은 우리가 사용하는 변수들이 저장되는 곳입니다.
즉, 무리한 함수의 호출은 메모리 부족을 야기할 수 있으나 웬만해서는 문제 될일은 없으니 걱정없으셔도 됩니다
(단, 마이컴의 경우 메모리가 16kb 보다 적은 녀석도 수두룩해서 조심해야 합니다)


+
가끔.. inline으로 풀어주면... 희한하게 코드 전체 사이즈가 줄어드는 마법이....
원인은 저도 잘 모르겠습니다. ㄷㄷ




+
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호