Event-Based Triggers Using Function Pointer Array

Code

#include <stdio.h>

void on_button() {
    printf("Button Pressed");
}
void on_timer() {
    printf("Timer Expired");
}
void on_uart() {
    printf("UART Received");
}
void on_power() {
    printf("Power On");
}
void on_error() {
    printf("Error Detected");
}

void (* handler[])() = {on_button, on_timer, on_uart, on_power, on_error};

// Write your event dispatcher logic here
void handle_event(int event_code) {
    // Your logic
    if ((event_code >=0 ) && (event_code <= 4))
        handler[event_code]();
    else 
        printf("Unhandled Event");
  
}

int main() {
    int event;
    scanf("%d", &event);
    handle_event(event);
    return 0;
}

Solving Approach

create array of the event handler functions. test the event code. if recognized code then invoke the appropriate handler. else print the unhandled event message

 

 

Upvote
Downvote
Loading...

Input

0

Expected Output

Button Pressed