일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 영상처리
- 케라스 정리
- 딥러닝 공부
- pytorch zero to all
- c++
- pytorch
- 파이토치 강의 정리
- 모두의 딥러닝
- TensorFlow
- tensorflow 예제
- matlab 영상처리
- 파이토치
- 골빈해커
- 가우시안 필터링
- 딥러닝 스터디
- 미디언 필터링
- MFC 프로그래밍
- c++공부
- 김성훈 교수님 PyTorch
- 해리스 코너 검출
- 딥러닝
- Pytorch Lecture
- 파이토치 김성훈 교수님 강의 정리
- 모두의 딥러닝 예제
- C언어 공부
- 컴퓨터 비전
- object detection
- c언어
- c언어 정리
- 팀프로젝트
- Today
- Total
ComputerVision Jack
[C프로그래밍 Chapter7] 본문
[함수 정의 및 선언]
프로그램을 구현할 때, 구현에 필요한 기능을 분석하고, 그 분석 결과를 바탕으로
작은 크기의 함수들을 디자인해야 한다.
printf()함수
printf()함수 또한 반환값이 존재한다.
모니터에 출력할 문자열 길이를 반환한다.
함수의 4가지 형태
- 전달 인자가 있고, 반환 값이 있다.
- 전달 인자가 있고, 반환 값이 없다.
- 전달 인자가 없고, 반환 값이 있다.
- 전달 인자가 없고, 반환 값이 없다.
return의 의미
- 함수를 빠져나간다.
- 값을 반환한다.
이러한 함수는 호출되기 전에 미리 정의가 되어 있어야한다.
따라서 함수의 선언을 상단에 정의하고 밑에서 구현하는 구조가 나오기도 한다.
함수를 선언할 때, 매개변수 이름을 포함해도 되고, 매개변수 이름을 생략해서 선언해도 된다.
또한 함수내에서 또 다른 함수를 호출해도 상관없다.
[변수 존재 접근 범위 : 지역 변수]
지역 변수(자동 변수)
'지역' 중괄호에 의해 형성되는 영역.
중괄호 내에 선언되는 변수는 모두 지역 변수이다.
지역 변수는 해당 지역을 벗어나면 자동으로 소멸된다.
지역 변수는 선언된 지역 내에서 유효하기 때문에 지역이 다르면 이름이 같아도 상관없다.
지역 변수는 반복문이다 조건문에도 선언이 가능하다.
매개 변수
매개 변수도 지역변수의 일종이다.
선언된 함수 내에서만 접근이 가능하다.
선언된 함수가 종료되면, 지역변수와 마찬가지로 소멸된다.
[변수 존재 접근 범위 : 전연 변수]
전역변수
어디서든 접근이 가능한 변수, 지역변수와 달리 중괄호 내에 선언되지 않는다.
- 프로그램 시작과 동시에 메모리 공간에 할당되어 종료까지 존재한다.
- 초기화 값이 없으면 0으로 초기화된다.
- 어디서든 접근이 가능하다.
전역 변수와 동일한 지역변수
가까이 있는 변수부터 접근이 이루어진다.
따라서 지역 변수 -> 전역 변수처럼 접근이 이루어진다.
하지만 전역 변수가 증가하면 프로그램이 복잡해지며 좋은 프로그램이 아니다.
static변수
지역 변수에 static선언이 붙게 되면, 전역 변수의 성격을 지니는 변수가 된다.
- 선언된 함수내에서만 접근 가능
- 프로그램 종료 시까지 메모리 공간에 존재한다.
접근 범위 제한 전역 변수, static이 붙어 있는 경우 미리 컴파일시켜 메모리 공간으로 올려 놓는다.
register변수
register로 선언된 변수는 CPU내에 존재하는 '레지스터' 메모리 공간에 저장될 확률이 높아진다.
변수를 빈번하게 사용하기 때문에, 접근이 빠른 곳에 두는 것이 효율이기 때문이다.
[재귀 함수]
재귀함수
함수 내에서 자기 자신을 다시 호출하는 함수
재귀 함수를 실행하는 중간에 다시 재귀 함수가 호출되면, 재귀 함수 복사본을 하나 더 만들어서
복사본을 실행한다.
재귀 함수는 함수 자신이 계속 함수를 호출하기 때문에 탈출 조건에 대한 명시가 명확해야한다.
'Programming Language > C Programming' 카테고리의 다른 글
[C프로그래밍 Chapter9] (0) | 2020.01.30 |
---|---|
[C프로그래밍 Chapter8] (0) | 2020.01.30 |
[C프로그래밍 Chapter6] (0) | 2020.01.28 |
[C프로그래밍 Chapter5] (0) | 2020.01.22 |
[C프로그래밍 Chapter4] (0) | 2020.01.20 |