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");
}

// Write your event dispatcher logic here
void handle_event(int event_code) {
    // Your logic

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

    if(event_code > 4 )
        printf("Unhandled Event\n");
        
    func_ptr[event_code]();
}

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



/*
void blink(){ printf(" LED Blink");}

void (*func_ptr)() = blink;

func_ptr();

int add(int  a, int b){
    return a+b;
}


int main(){

    int (*fp)(int, int) = add;

    int result = fp(5,3);


}
*/

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

0

Expected Output

Button Pressed