[C언어] 함수

르랑·2021년 7월 26일
1

Programming Language C

목록 보기
6/10

함수


☆ 전달인자 유무와 반환 값의 유무에 따른 분류

1. 전달인자 O, 반환값 O

 - 가장 일반적.
 - 함수의 호출문이 반환 값으로 대체 됨.
 - int Add(int num1, num2){
    int result = num1 + num2;
    return result;
   }

2. 전달인자 O, 반환값 X

 - void Result(int num1){
    printf("결과출력: %d\n, num);
   }

3. 전달인자 X, 반환값 O

 - int readnum(void){
    int num;
    scanf("%d", &num);
    return num;
   }

4. 전달인자 X, 반환값 X

 - void Prog(void){
    int num;
    printf("두 정수를 입력하세요.\n");
    printf("덧셈 결과가 출력됩니다.\n");
   }


☆ return

 1. 함수를 빠져나간다.
 2. 값을 빠져나간다.


☆ 지역변수, 전역변수

1. 지역변수

  - Local Variable = Automatic Variable
  - 함수 내에서만 존재 및 접근 가능함.
  - 스택(Stack)이라는 메모리 영역에 할당됨.
  - 선언문이 존재하는 함수가 반환을 하면 메모리 공간에서 소멸됨.

2. 전역변수

  - 어디서든 접근이 가능한 변수.
  - 프로그램의 시작과 동시에 메모리 공간에 할당되어 종료시까지 존재.
  - 별도의 값으로 초기화하지 않으면 0으로 초기화.
  - 같은 명의 지역변수가 선언되면 전역변수는 가려짐.

+ static 변수

  - 지역변수는 static선언으로 전역변수의 특성을 가짐.
  - 딱 1회 초기화되고, 프로그램 종료시까지 메모리 공간에 존재.
  - 단, 선언된 함수 내에서만 접근 가능.

+ register 변수

  - CPU내에 존재하는 메모리로, 연산이 매우 빠름.
  - 전역 변수는 register 선언을 추가할 수 없음.


☆ 재귀함수

  - 함수 내에서 자기 자신을 다시 호출하는 함수.
  - 재귀 탈출 조건이 필수적으로 필요함.


0개의 댓글