1. 예정

  • 수업 1시간 넘을수도 있음 (실습은 약간만)
  • 강의 :
  • 함수와 프로그램 구조
    • 함수function
      • 인자, 반환값, 매개변수, void, side-effect
      • 변수 유효 영역scope(recall)
      • 저장 클래스storage class, static, extern
      • 사용자 정의 함수
      • type identifier (type [identifier][, ...]);
      • 선언 후 정의
      • 표준 라이브러리 함수
      • main 함수 *
        • argc, argv, EXIT_SUCESS, EXIT_FAILURE
      • 호출 스택 *
      • 재귀 함수recursive function *
    • 프로그램 구조 *
      • 헤더 파일
      • extern
-----------------------------------------------------------------------
  • 실습 :
  • 시간이 허락하는 만큼 까지만 합니다.
  • 사칙연산 계산기 만들기
  • #1)
    • 입력)
      • 첫 번째 : 연산 종류('+', '-', '*', '/')
        • '!' 입력시 종료
      • 두 번째, 세 번째 : 각각 피연산자 2개(정수만)
      • 출력)
        • 연산 결과
      • 프롬프트를 출력할 것
      • 종료 전까지 무한 반복
  • #2)
    #1에서,
    • 프로그램 실행 인자를 받는(main의 인자) 프로그램 만들기
    • [[add|sub|mul|div] [op1] [op2] [, ...]]
    • 인자를 받을 경우 즉시 종료
  • 사용자 정의 함수를 사용해 봅시다.
  • 헤더와 소스코드를 분리해 봅시다.

2. 진행

  • 함수
    • 인자, 반환값, 매개변수 등등으로 구성되어 있는 '도구'
    • 순서에 영향을 많이 받기 때문에 함수가 호출되려면 앞에서 함수가 정의되어 있어야 한다.
  • 재귀함수
    • 함수가 자기 자신을 호출하는 함수.
    • 속도가 느리다. 그러나 특정한 상황에서는 빠를 수도 있음
    • 피보나치 수열이나 팩토리얼 계산에 활용할 수 있음
  • 변수
    • 전역변수 : 프로그램 전체에서 접근할 수 있고, 존재하는 변수
    • 지역변수 : 한 함수 안에서 (중괄호 내에서) 존재하고, 접근할 수 있는 변수. 함수가 끝나면 사라진다
    • static : 지역변수이긴 한데 함수가 끝나도 메모리 안에 존재하는 변수. 그러나 다른 함수에서는 접근하지 못한다.
  • 표준 라이브러리 함수
    • 사용자가 함수를 더 사용하기 쉽게 어떤친절한사람이 만들어놓은 헤더파일이라고 보면 된다.
    • stdio.h, stdlib 에서 지정된 printf, scanf 등이 있음.
  • main함수
    • main함수도 반환값이 있다
    • 반환값이 0이면 성공적으로 실행된 것이라고 약속해놨음
    • stdlib.h에서는 성공 반환값과 실패 반환값을 EXIT_SUCCESS, EXIT_FAILURE라고 매크로로 정의해놓음
  • stack
    • 마지막에 집어넣은 것일수록 제일 먼저 나오는 구조
    • 어셈블리를 배우고 왔으면 더 쉬울건데
    • 대충만 알아도 성공한 것이다

3. 실습

4. 기타 / 후기 / 방명록

Retrieved from http://wiki.zeropage.org/wiki.php/새싹교실/2017/C언어가르쳐조/5월16일
last modified 2021-02-07 05:30:05