본문 바로가기

프로그래밍 언어/C언어

C언어 - 사용자 정의 함수 (기본편)

 

이전에 공부한 구구단 코드를 이용하여 함수를 공부해보자.

 

함수를 사용하는 이유는?!

분할 작업을 할 수 있기 때문이다.

(만약 여러사람과 프로그램을 만든다면 각 역할을 분담하여 코드를 짜고

원하느 부분에서 코드를 실행만 하면 되기 때문이다.)

 

++ 더해서 간결하게 보이기에 가독성을 높일 수 있다.

 

(이해가 안간다면 일단 보자.)

 

 

그렇다면 2단을 출력하는 함수를 만들어보자.

 

#include <stdio.h>

void dan2() {
	int i, p;
	p = 2;

	printf("%d\n", p);

	for (i = 1; i < 10; i++) {
		printf("%d * %d = %d\n", p, i, p * i);
	}
}

int main() {
	dan2();  //dan2 라는 함수를 만든다.
}

 

보는 바와 같이 3째 줄의 void dan2() 가 먼저 실행되는 것이 아닌

 

int main()이 먼저 실행되며 dan2(); 함수로 이동하게 된다.

 

그 후 2번에서 dan2()가 실행되며 출력되는 것이다.

 

#include <stdio.h>

void dan3() {
	int i, p;
	p = 3;

	printf("%d\n", p);

	for (i = 1; i < 10; i++) {
		printf("%d * %d = %d\n", p, i, p * i);
	}
}

void dan2() {
	int i, p;
	p = 2;

	printf("%d\n", p);

	for (i = 1; i < 10; i++) {
		printf("%d * %d = %d\n", p, i, p * i);
	}
}

int main() {
	dan2();
	dan3();
}

 

이렇게 2단과 3단을 출력할 수 있으며

가장 큰 특징은 dan3() [3번째 줄] 과 dan2() [14번째 줄] 을

바꾸어도 26번째 코드에서 dan2()가 먼저 실행되기에

2단부터 출력된다.

 

분할 작업을 할 수 있는 가장 큰 이유이다.

 

 

 

하지만 이렇게 함수를 만들 경우 2에서 9까지의 함수를 만들어야한다.

 

 

매개변수를 이용하여 코드를 줄여보자.

 

 

int main() 에 dan2()를 dan(2)으로 고친다.

(3단도 마찬가지)

 

그리고 void dan() 부분도 아래와 같이 수정해보자.

 

#include <stdio.h>

void dan(int p) {
	int i;

	printf("%d\n", p);

	for (i = 1; i < 10; i++) {
		printf("%d * %d = %d\n", p, i, p * i);
	}
}

int main() {
	dan(2);
	dan(3);
}

 

p = 2; 를 지워도 되는 이유는 int main() 에서의 dan(매개변수)가

void dan(int 매개변수) 로 값을 받았기 때문이다.

 

 

마지막으로 2단부터 9단까지 출력하는 함수를 직접 작성해보고 비교해보자.

 

#include <stdio.h>

void dan(int a) {
	int i;

	printf("%d\n", a);

	for (i = 1; i < 10; i = i++) {
		printf("%d * %d = %d\n", a, i, a * i);
	}
}

int main() {
	int j;

	for (j = 2; j < 10; j++) {
		dan(j);
	}
}

 

https://book.naver.com/bookdb/book_detail.nhn?bid=8187381

'프로그래밍 언어 > C언어' 카테고리의 다른 글

C언어 - 사용자 정의 함수 (최종)  (0) 2021.01.14
C언어 - 매개변수  (0) 2021.01.13
C언어 - switch문  (0) 2020.08.17
C언어 - 논리연산자  (0) 2020.08.17
C언어 - 연산자  (0) 2020.08.12