[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 구조체를 사용하여 widthheight라는 핵심 데이터만 노출시킴으로써 추상화를 구현할 수 있습니다.

인터페이스(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언어에서의 추상화와 인터페이스에 대한 간략한 소개였습니다.

참고 문헌: