티스토리 뷰
개발자의 C언어 독학 기초 # 함수
모든 강의 자료 : www.codingnow.co.kr/
이번 강의는 함수에 대해 설명한다.
함수는 Function == 기능을 뜻한다.
간단히 말해서 어떠한 기능을 위해 만들어 놓은것!? 정도로 표현하고 싶다.
예를 들어 최대 값을 구하는 경우 하나의 함수를 만들어 놓으면 동일한 코드를 반복적으로 기록 할 필요가 없다.
#include <stdio.h>
#include <windows.h>
//함수(Function)
int SearchMax(int val1, int val2)
{
int max;
if(val1 > val2)
{
max = val1;
}else{
max = val2;
}
return max;
}
void main(void)
{
system("chcp 65001"); //gcc 한글 깨짐
system("cls"); //화면지움
int a[5] = {10, 11, 33, 44, 88};
int b[5] = {20, 14, 23, 34, 85};
int max;
for(int i=0; i<5; i++)
{
max = SearchMax(a[i], b[i]);
printf("\na = %d, b = %d, max = %d\n",a[i],b[i],max);
}
return;
}
a, b 각각의 배열을 순서대로 큰 값을 구하는 간단한 예제 소스이다.
SearchMax( ) 함수는 a, b를 넣어 큰 값을 얻어오는 기능을 한다.
함수의 선언은 리턴타입 함수명(전달인자,...) 로 구성된다.
함수에 리턴 타입이 없거나 전달자가 없는 경우는 void 함수명(void)로 한다.
(전달자의 void는 안써도 상관없다.)
https://cflab2017.tistory.com/24
이전 포인터 강의 예문을 사용해서 함수 사용 법을 익히기 위해 함수를 사용해서 몇가지를 변경 해본다.
포인터 변수를 인자로 전달해서 해당 index의 값을 가져오는 기능을 한다.
결과는 이전 강의와 동일하다.
실무에서의 함수 사용은 매우 중요하다.
기능의 세분화하여 함수로 구현해 놓으면 신규 프로젝트 진행시에 이전 프로젝트의 함수를 Ctrl+C, Ctrl+V 에서 사용할있어 개발 시간 단축에 매우 도움이 된다.
또한 문제 발생시에 디버깅에 매우 유리하다.
기능을 나누워서 볼 수 있기 때문에 현상과 기능을 따져가며 문제 원인에 접근할 수 있다.
#include <stdio.h>
#include <time.h>
#include <windows.h>
int valueGet(int *value, int index)
{
return value[index];
}
void main(void)
{
int num1, num2, result, sum;
int score;
system("chcp 65001"); //gcc 한글 깨짐
system("cls"); //화면지움
int arr1[10] = {1,2,3,4,5,6,7,8,9,10};
int arr2[10] = {10,20,30,40,50,60,70,80,90,100};
int * p1 = &arr1[0];
int * p2 = &arr2[0];
score = 0;
for(int cnt=0; cnt<10; cnt++)
{
num1 = valueGet(p1, cnt);//p1[cnt];//arr1[cnt];
num2 = valueGet(p2, cnt);//p2[cnt];//arr2[cnt];
sum = num1+ num2; //답을 구한다.
//문제를 출제한다.
printf("\n %02d번째 문제 %d + %d = ",(cnt+1), num1, num2);
//답을 입력받는다.
scanf("%d", &result);
//결과를 표시한다.
if(sum == result)
{
printf(" 정답입니다.\n");
score += 10;
}else{
printf(" 오답입니다. 정답은 %d 입니다.\n", sum);
}
}
printf("-------------------------------------\n");
printf(" 100점 만점에 %d입니다.\n",score);
printf("-------------------------------------\n");
system("pause");
return;
}
매 강의에서 언급하듯이 프로그래밍 언어는 다양한 형태로 구현된 소스코드를 접하는 것이 실력 향상과 연봉에 많은 도움이 된다.
프로그래밍 언어의 문법은 몇가지 없지만 이것을 가지고 어떻게 활용하는냐가 실력과 연봉을 좌우한다.
'C언어 강의' 카테고리의 다른 글
개발자의 C언어 독학 기초 # 응용편 / 버블정렬 bubble sort (0) | 2020.04.14 |
---|---|
개발자의 C언어 독학 기초 # 구조체 (0) | 2020.04.14 |
개발자의 C언어 독학 기초 # 포인터 (0) | 2020.04.13 |
개발자의 C언어 독학 기초 # 기본 연산 (0) | 2020.04.11 |
개발자의 C언어 독학 기초 # 다중 배열의 기초 (0) | 2020.04.10 |