함수
-
[C Language] 26. 함수 - 재귀함수(Recursive) - C 언어CSE/C Language 2015. 6. 13. 10:23
1. 재귀함수의 사용방법 아래 예제를 통해 재귀함수를 사용한 예제 1부터 100까지 더하는 예제를 보자. 123456789101112131415161718192021222324252627/* * recur1.c * * Created on: 2015. 5. 17. * Author: root */ #include int sum(int); int main(void) { int result = 0; result = sum(100); printf("Result = %d\n", result); return 0;} int sum(int x) { if (x == 0) return x; else return x + sum(x - 1);}Colored by Color Scriptercs 2. 재귀함수의 문제점 - 재귀함수..
-
[C Language] 25. 함수 - 리턴 값 여러 개 받기 - C 언어CSE/C Language 2015. 6. 13. 10:22
1. 전역변수를 이용한 리턴 값 받기 가장 간단하지만 가장 위험한 전역변수를 이용한 리턴 값 받기를 살펴보자. 1234567891011121314151617181920212223242526272829303132333435/* * global.c * * Created on: 2015. 5. 17. * Author: root */ #include int add, subtract, multiply, divide; void calculate(int, int); int main(void) { int x = 7, y = 5; calculate(x, y); printf("%d + %d = %d\n", x, y, add); printf("%d - %d = %d\n", x, y, subtract); printf("%d ..
-
[C Language] 24. 함수 - 참조에 의한 호출(Call By Reference) - C 언어CSE/C Language 2015. 6. 13. 10:21
값에 의한 호출이 '복사'라는 중요한 개념을 가지고 있다면, 참조에 의한 호출(Call By Reference)는 '참조'라는 중요한 개념을 가지고 있다. 아래 예제를 통해 이전 장에서 값을 바꾸는 예제를 참조를 통한 예제로 확인하자. 123456789101112131415161718192021222324252627282930313233343536373839/* * rSwap.c * * Created on: 2015. 5. 17. * Author: root */ #include void swap(int *, int *); int main(void) { int x = 7, y = 5; puts("Inside main() function"); printf("1. x = %d, y = %d\n", x, y);..
-
[C Language] 23. 함수 - 값에 의한 호출(Call By Value) - C 언어CSE/C Language 2015. 6. 13. 10:21
값에 의한 호출을 이야기할 때 빠져서는 안 되는 개념이 있다. 바로 매개변수이다. 매개변수는 형식 매개변수와 실 매개변수로 나뉘는데, 호출하는 쪽의 인자를 실 매개변수라 하고, 호출 당하는 쪽의 인자를 형식 매개변수라 한다. 아래 예제를 통해 살펴보자. 숫자를 입력하면 입력한 숫자 값까지 1부터 더하는 예제이다. 아래 예제에서 total = sum(num)에서 num은 실 매개변수이다. 이 값이 아래의 sum(int x) 함수의 x에 복사되어 전달된다. 12345678910111213141516171819202122232425262728293031323334353637/* * sumuntil.c * * Created on: 2015. 5. 17. * Author: root */ #include int s..
-
[C Language] 22. 함수(function)의 기본 - C 언어CSE/C Language 2015. 6. 13. 10:20
1. 함수의 구조 함수의 본체는 아래와 같은 구조로 되어 있다. return_type function_name(args) {선언자; 수행문;수행문;... } return_type: function_name이라는 함수가 결과 값을 구한 후, 호출한 함수에게 넘겨주는 값에 대한 자료 형(data Type)을 뜻한다. function_name: 말 그대로 함수의 이름이다. args: function_name()을 호출할 때 넘겨주는 인자(arguments)를 지칭한다. 다음과 같은 형태로 함수를 사용할 수 있다. 1. int swap(int x, int y) 2. char *add(char *one, char *two) 3. int add(int x, int y) 4. void gugudan(int dan);..
-
[C Language] 21. 함수(function)란? - C 언어CSE/C Language 2015. 6. 13. 10:18
1. 함수 개론 - 수학에서 함수는 y = f(x)로 표시된다. 이것은 x의 값을 함수 f()에 적용하면 y의 값을 돌려준다는 의미이다. - C에서도 같은 원리이다. 함수에 x의 값에 대응되는 인자 값을 넘겨주면 결과를 리턴한다. - 수학 함수와 달리 인자를 사용하지 않거나, 리턴 값을 받지 않는 유연성을 C에서 가지고 있다. 2. 함수의 특징 - C는 함수로 시작해서 함수로 끝난다고 할 정도로 함수를 많이 사용한다. '모듈화를 가능하게 해준다' - 모듈화를 하면 거대한 프로그램도 분업화가 가능하여 각각의 기능들을 따로 구현하고 이를 하나로 합쳐서 완성할 수 있으며, 아무리 복잡한 프로그램도 완벽한 모듈화를 통해서 함수 내부의 모든 동작을 알지 못해도 사용방법만 알고 있으면 별 문제 없이 사용할 수 있다..
-
[C Language] 5. 입출력 함수(I/O Function) - C 언어CSE/C Language 2015. 6. 13. 10:04
1. 입출력 함수의 개요 - 키보드로 입력을 받거나 화면에 출력을 해주는 함수를 통틀어 입출력 함수라 한다.(파일에 읽기 쓰기도 입출력) 2. printf() - 표준 출력 함수 중에서 가장 많이 사용되는 함수이다. - 문자, 숫자, 문자열, 부동 소수 등 다양한 형태로 출력 가능하다. 'printf()의 형식' printf("서식 문자열", 인자1, 인자2, ...); printf()는 크게 서식 문자열과 인자의 조합으로 사용 가능하며, 서식 문자열은 항상 큰따옴표로 감싸주어야 한다. '변환 형식 문자가 없는 경우' 1. printf("I'm a rich"); 2. printf("I'm a boy.\n Yor are a girl"); '변환 형식 문자가 있는 경우' 1. printf("Age: %d\n..
-
[C Language] 3. 매크로 함수(Macro function) - C 언어CSE/C Language 2015. 6. 13. 10:02
1. 간단한 매크로 함수 예제 #define ADD(x, y) x + y #define: 매크로 지시자 ADD : 매크로 함수명(중간에 공백이 있으면 안 됨) (x, y): 매크로 함수 인자 x + y: 매크로 함수 몸체 ADD()라는 매크로 함수의 인자(parameter)에 5와 7을 주면 전처리기는 ADD(5, 7)을 12라는 숫자로 바꾸어서 컴파일러에게 건네주는 것이 아니다. 단지 치환을 시키는 것 뿐이다. 다른 예로 두 수중 큰 수를 출력하는 예제를 보도록 하자. #define MAX(x, y) (x > y) ? x : y 위 예제는 삼항 연산자로 x가 y보다 클 경우 x, 아니면 y를 반환한다. - 여러 예제 #define MAX(x, y) (x > y) ? x : y #define PRINT(..