관리 메뉴

ComputerVision Jack

[C프로그래밍 Chapter7] 본문

Programming Language/C Programming

[C프로그래밍 Chapter7]

JackYoon 2020. 1. 29. 10:04
반응형

[함수 정의 및 선언]

프로그램을 구현할 때, 구현에 필요한 기능을 분석하고, 그 분석 결과를 바탕으로

작은 크기의 함수들을 디자인해야 한다.

 

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
Comments