Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 파이썬
- TensorFlow
- pyqt5
- 텐서플로우
- 이터널리턴
- ctypes
- C언어
- 논문
- python
- yolo
- NPY
- 개발자
- 딥러닝
- 호흡분석
- V3
- 헬스케어
- 프로그래머
- 설치
- 게임개발
- 언어모델
- Detectron2
- CycleGAN
- ChatGPT
- connx
- 딜러닝
- 언리얼엔진
- 욜로
- 리뷰
- 파워셀
- 논문리뷰
Archives
- Today
- Total
사냥꾼의 IT 노트
C++ 필기 노트 #7 함수 본문
1. 함수란? 복잡한 문제를 다시 작은 문제로 나누는, 자주 사용되는 개발 방법론
(다른 프로그래밍 언어에서는 메소드 또는 프로시저라고 부르기도 함)
2. 함수의 장점
- 분할 처리
- 오류 확인(디버그)
- 재사용
- 함수 라이브러리: 잘 쓰여진 함수들이 보관되어 있는 곳
3. 함수의 기본 사용법
- 함수 선언: 함수의 헤더와 세미콜론만 조합된 구문 -> 함수의 호출 방법을 나타낼 때 사용
- 자료형 함수_이름(매개변수_리스트);
- 함수 정의: 함수를 만드는 것
- 리턴_자료형 함수_이름(매개변수 리스트){ 본문 }
- 함수 호출: 함수의 내용을 실행하기 위해서 함수를 호출하는 것 (후위 표현식)
- argument와 parameter
- parameter: 함수 정의에 있는 변수 선언
- argument: 함수를 호출할 때 매개변수를 초기화하는 값
4. 라이브러리 함수: 라이브러리에 함수가 미리 정의되어 있는 것
- 숫자 함수
- 삼각 함수
- 문자 구분 함수
- 문자 변환 함수
- 시간 함수: <ctime> 헤더 파일에 정의되어 있는 time 함수로, 유닉스 타임을 리턴함. 즉, 어떤 시간을 기준으로 함수가 호출된 시점까지의 초를 리턴함.
- 랜덤 숫자 관련 함수
5. 사용자 정의 함수
- 매개변수가 없는 void 함수: 함수 내부에서 부가 작용을 일으키기 위해서만 사용
- 매개변수가 있는 void 함수: 매개변수로 값을 전달해서 활용하는 함수 -> 리턴값을 리턴하지 않음
- 매개변수가 없지만 리턴값이 있는 함수: 리턴값을 목적으로 사용하는 함수로, 일반적으로 함수 내부에서 입력을 받고 이를 리턴함
- 매개변수와 리턴값이 있는 함수
5. 자료 교환
- 값으로 전달(pass-by-value): 인수의 값이 복사되어서 매개변수에 할당 -> 호출되는 함수 쪽에서 인수를 변경하지 않게 만들고 싶을 때 사용 => 읽기 전용 접근
- 참조로 전달(pass-by-reference): 인수와 매개변수는 메모리 위치를 공유함 => 읽고 쓸 수 있는 접근
- 포인터로 전달(pass-by-pointer): 인수로 메모리 주소를 매개변수에 전달하는 것 -> 인수의 메모리 위치에 접근 가능
6. 자료 리턴
- 값으로 리턴(return-by-value): 호출되는 함수 쪽에서 어떤 표현식을 생성하고, 이를 리턴함
- 참조로 리턴(return-by-reference): 복사로 인해서 발생하는 비용을 줄이기 위해 사용
- 포인터로 리턴(return-by-pointer)
7. 기본 매개변수
기본 매개변수를 사용해서 변수에 기본값을 지정할 수 있음 -> 오른쪽에 위치하는 매개변수들에만 적용 가능
8. 함수 오버로딩
이름이 같은 함수를 함수 시그니쳐만 다르게 해 2개 정의하는 것
- 함수 시그니처: 함수들을 구분하기 위해 사용하는 기준으로, 매개변수의 자료형, 개수, 순서를 통칭함
9. 스코프
소스 코드 내부에서 어던 엔티티를 사용할 수 있는 범위
- 지역 스코프: 선언된 위치부터 블록이 끝나는 부분(닫는 중괄호) 내부에서 사용
- 전역 스코프: 모든 함수의 외부에 선언된 엔티티 => 범위 해결 연산자: ::
- 셰도잉(shadowing)
- 함수 이름, 매개변수의 스코프
10. 수명
- 자동 지역 변수: 함수가 호출될 때 생성되고 함수가 종료될 때 소멸 => 초기화하지 않으면 메모리에 남아있는 쓰레기 값을 가지게 됨
- 정적 지역 변수: static 변경자를 앞에 붙여서 만듬. 처음 호출할 때 초기화되며, 이후에는 초기화되지 않고 프로그램이 종료되기 전까지 유지됨 => 초기화 하지 않으면 기본값으로 초기화됨
- 초기화
'C++' 카테고리의 다른 글
C++ 필기 노트 #0 객체 지향 프로그래밍 (0) | 2022.05.04 |
---|---|
C++ 필기 노트 #8 클래스와 생성자 (0) | 2022.04.20 |
C++ 실습: 소수인지 확인하는 프로그램 (0) | 2022.04.14 |
C++ 필기 노트 #6 반복문 (0) | 2022.04.14 |
C++ 필기 노트 #5 조건문 (0) | 2022.04.07 |