[c언어] 추상화와 인터페이스
C언어는 절차 지향적인 언어로, 추상화와 인터페이스를 통해 코드의 모듈화와 유지보수성을 높일 수 있습니다.
추상화(Abstraction)
추상화는 복잡한 시스템이나 문제를 단순화하여 핵심적인 개념 또는 기능에만 집중할 수 있도록 하는 과정입니다. C언어에서는 추상화를 위해 구조체(Struct) 나 헤더파일(Header file) 을 활용합니다.
// 예시: 구조체를 사용한 추상화
typedef struct {
int width;
int height;
} Rectangle;
void initialize(Rectangle *rect, int w, int h) {
rect->width = w;
rect->height = h;
}
위 예시에서 Rectangle
구조체를 사용하여 width
와 height
라는 핵심 데이터만 노출시킴으로써 추상화를 구현할 수 있습니다.
인터페이스(Interface)
C언어에서는 함수 포인터(Function Pointer) 나 헤더파일(Header file) 을 통해 인터페이스를 구현합니다. 인터페이스를 통해 모듈 간의 결합도를 줄이고, 코드의 재사용성과 유지보수성을 높일 수 있습니다.
// 예시: 함수 포인터를 사용한 인터페이스
typedef int (*Comparator)(int, int);
int compareAsc(int a, int b) {
return a - b;
}
int compareDesc(int a, int b) {
return b - a;
}
void sort(int arr[], int size, Comparator comp) {
// comp 함수 포인터를 통해 정렬 기준을 유연하게 설정
}
위 예시에서 Comparator
함수 포인터를 사용하여 sort
함수의 정렬 기준을 유연하게 설정할 수 있습니다.
C언어에서 추상화와 인터페이스를 적절히 활용하여 모듈화된 코드를 작성하면, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
여기까지가 C언어에서의 추상화와 인터페이스에 대한 간략한 소개였습니다.
참고 문헌:
- “C Programming Language” by Brian W. Kernighan and Dennis M. Ritchie