[[TableOfContents]] = 예정 = * 수업 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]}}}'' ''{{{[, ...]}}}''{{{]}}} * 인자를 받을 경우 즉시 종료 * 사용자 정의 함수를 사용해 봅시다. * 헤더와 소스코드를 분리해 봅시다. = 진행 = * 함수 * 인자, 반환값, 매개변수 등등으로 구성되어 있는 '도구' * 순서에 영향을 많이 받기 때문에 함수가 호출되려면 앞에서 함수가 정의되어 있어야 한다. * 재귀함수 * 함수가 자기 자신을 호출하는 함수. * 속도가 느리다. 그러나 특정한 상황에서는 빠를 수도 있음 * 피보나치 수열이나 팩토리얼 계산에 활용할 수 있음 * 변수 * 전역변수 : 프로그램 전체에서 접근할 수 있고, 존재하는 변수 * 지역변수 : 한 함수 안에서 (중괄호 내에서) 존재하고, 접근할 수 있는 변수. 함수가 끝나면 사라진다 * static : 지역변수이긴 한데 함수가 끝나도 메모리 안에 존재하는 변수. 그러나 다른 함수에서는 접근하지 못한다. * 표준 라이브러리 함수 * 사용자가 함수를 더 사용하기 쉽게 어떤~~친절한~~사람이 만들어놓은 헤더파일이라고 보면 된다. * stdio.h, stdlib 에서 지정된 printf, scanf 등이 있음. * main함수 * main함수도 반환값이 있다 * 반환값이 0이면 성공적으로 실행된 것이라고 약속해놨음 * stdlib.h에서는 성공 반환값과 실패 반환값을 EXIT_SUCCESS, EXIT_FAILURE라고 매크로로 정의해놓음 * stack * 마지막에 집어넣은 것일수록 제일 먼저 나오는 구조 * ~~어셈블리를 배우고 왔으면 더 쉬울건데~~ * 대충만 알아도 성공한 것이다 = 실습 = = 기타 / 후기 / 방명록 = ----------------------------------- [새싹교실/2017/C언어가르쳐조] [새싹교실/2017]