반응형
함수
함수 만들기
- 함수 선언 : 함수 원형을 적는 것
- 함수 원형 : 함수를 사용할 때 알아야 할 것만 모아놓은 것
int sum (int, int);
- 함수 정의 : 함수의 실제 코드를 작성하고 기능을 구현하는 것이다.
int sum (int x, int y) {
int tmp;
tmp = x + y;
return tmp;
}
함수 선언과 정의는 다른 행위다.
함수 선언은 함수의 프로토타입을 만드는 행위고,
함수 정의는 만들어진 함수 프로토타입을 완성시키는 행위다.
- 함수 호출 : 함수에 필요한 인자를 주고 결과를 얻는 것이다.
result = sum(3,5);
값에 의한 호출
- 복사의 의미
- a와 b를 sum의 매개변수 자리에 넣는다.
- 이 변수를 sum에서 사용하는 것이 아니라, a와 b에 저장된 값만 복사해서 사용한다.
- 이를 값에 의한 호출이라 한다.
값을 복사해서 사용하는 이유는 원본의 데이터를 훼손시키기 않기 위함이다.
함수가 호출되는 과정
- 중첩 호출
함수 선언 시 주의사항 - C 언어
- 변수를 사용하기 전에 선언하듯이 함수도 사용하기 전에 선언해야 한다.
- 단방향 컴파일(C언어 컴파일)는 소스코드를 위에서 아래로 쭉 읽어 내려간다.
- 읽어 내려가던 중, 미리 선언되지 않은 함수를 만나면 오류를 출력한다.
- (단방향이 아니라) 여러 번 읽어 내려 간다면 main 함수 사용 후에 선언되어 있어도 처리할 수 있다.
Java와 같은 객체 언어는 함수 선언할 필요없이, 함수 정의만 하면된다.
- 함수명은 짧고 의미 있게 짓자
- 이름이 길면 입력이 힘들고, 오타도 자주난다. (휴먼에러 발생가능성이 있다.)
- 대소문자에 민감하므로, 자신만의 일관성이 필요한다. (코드 작성규칙을 정하는 행위)
함수 정의 시 주의사항
- 들여쓰기를 잘하자
- 프로그래밍에서 들여쓰기는 소스코드의 가독성을 높이는 핵심 요소이다.
- 변수의 유효 범위를 쉽게 판단할 수 있다.
- 들여쓰기에도 일관성이 필요하다.
들여쓰기의 규칙을 정해 코드를 작성하면 된다.
- 프로그래밍에서 들여쓰기는 소스코드의 가독성을 높이는 핵심 요소이다.
스택 개요
- 스택은 말 그대로 쌓아놓은 더미를 의미한다.
- C언어는 스택이라는 구조를 이용하여 함수, 변수를 관리한다.
스택 프레임
- 프로그램 실행 시 운영체제는 메인 메모리를 다음과 같은 영역으로 나누어 사용한다.
- 코드 세그먼트
- 데이터 세그먼트
- 스택 메모리
- 빈 메모리
- 힙 메모리
- 사용자가 직접 관리할 수 있는 '그리고 해야만 하는' 영역이다.
- 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다.
- 메모리의 상위 주소에서 하위 주소의 방향으로 할당한다.
운영체제에 따라 정반대 순서로 배치할 수도 있다.
스택 메모리
- 함수의 호출과 관계되는 지역 변수와 매개변수를 저장한다.
반응형
'CS 대학강의' 카테고리의 다른 글
[CS 1-2 | 오픈소스 SW 기초] 리눅스 VIM 편집기란 3주차 (0) | 2022.09.29 |
---|---|
[CS 1-2 | 대학생을 위한 실용금융] 금융회사, 저축의 이해 4주차 (0) | 2022.09.28 |
[CS 1-2 | 이산수학] 함수 7주차 (0) | 2022.09.27 |
[CS 1-2 | 이산수학] 집합 그리고 활용 6주차 (0) | 2022.09.26 |
[CS 1-2 | 아카데믹 글쓰기] 고정관념, 여러 관점에서의 글쓰는 방법 3주차 (0) | 2022.09.26 |