C언어 - 함수가 필요할 때
2020. 11. 10. 17:46ㆍ개인공부/C언어
프로그램을 작성할땐 2가지를 신경써야한다.
1. 일반화라는 관점에서 프로그램이 여러가지의 경우에 대해서 쉽게 작동할수 있도록 개선해나가야 함.
2. 같은 기능이 여러번 나오면 안된다. (유지보수가 어렵기 때문)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define WIDTH 20
#define NAME "Cho Yi Sak"
#define ADDRESS "Seoul, Korea"
void print_bar(int n_stars) {
for (int i = 0; i < n_stars; i++)
printf("*");
printf("\n");
}
int main() {
print_bar(WIDTH);
printf(" %s\n", NAME);
printf(" %s\n", ADDRESS);
print_bar(WIDTH);
return 0;
}
별막대기 함수를 따로 만들어서 중복하지 않고 함수 호출로 설계.
********************
Cho Yi Sak
Seoul, Korea
********************
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define WIDTH 40
#define NAME "Cho Yi Sak"
#define ADDRESS "Seoul, Korea"
void print_multiple_chars(char c, int n_stars)
{
for (int i = 0; i < n_stars; ++i)
printf("%c", c); //putchar(c)
}
void print_centered_str(char str[]) {
int n_blanks = 0;
n_blanks = (WIDTH - strlen(str)) / 2;
print_multiple_chars(' ', n_blanks);
printf("%s\n", str);
}
int main() {
print_multiple_chars('*', WIDTH);
printf("\n");
print_centered_str(NAME);
print_centered_str(ADDRESS);
print_centered_str("I love you");
print_multiple_chars('*', WIDTH);
return 0;
}
유지보수가 한결 더 쉬워졌고 코드의 중복도 많이 줄었다.
'개인공부 > C언어' 카테고리의 다른 글
C언어 - 변수의 영역(scope)과 지역변수(Local) (0) | 2020.11.10 |
---|---|
C언어 - 함수의 프로토 타입 (0) | 2020.11.10 |
C언어 - 표준 입출력 함수들 (0) | 2020.11.10 |
C언어 - 배열과 런타임 에러 (0) | 2020.11.10 |
C언어 - 반복문 (0) | 2020.11.10 |