[c언어] 함수 포인터의 장단점

함수 포인터는 C언어에서 강력한 기능을 제공하는데, 이에 따라 장점과 단점이 따라옵니다.

장점

동적 함수 호출

함수 포인터를 사용하면 런타임에 어떤 함수를 호출할 지 결정할 수 있습니다. 이는 유연한 프로그래밍을 가능하게 합니다.

void sayHello() {
    printf("Hello, world!");
}

void sayGoodbye() {
    printf("Goodbye, world!");
}

int main() {
    void (*functionPtr)() = sayHello;
    functionPtr(); // "Hello, world!" 출력
    
    functionPtr = sayGoodbye;
    functionPtr(); // "Goodbye, world!" 출력
    
    return 0;
}

콜백 함수

함수 포인터는 이벤트 처리나 비동기 작업과 같이 콜백 함수를 등록하는 데 사용됩니다.

typedef void (*Callback)(int);

void performAction(int data, Callback callback) {
    // 작업 수행
    callback(result);
}

void onCallback(int result) {
    printf("Callback result: %d", result);
}

int main() {
    performAction(10, onCallback);
    return 0;
}

단점

복잡성

함수 포인터를 오용하면 코드의 가독성과 유지보수성이 떨어질 수 있습니다. 그러므로 적절하게 사용해야 합니다.

결론

함수 포인터는 C언어에서 강력하고 유연한 프로그래밍을 가능하게 합니다. 그러나 과용하면 코드의 이해와 유지보수가 어려워질 수 있으므로 신중하게 결정해야 합니다.

참고 문헌: