//structs pointing to functions
#include <stdio.h>
// struct
typedef struct audio
{
// All of these are asignable pointers to functions
void (*play_ptr)();
void (*stop_ptr)();
void (*pause_ptr)();
void (*forward_ptr)();
void (*back_ptr)();
} audio;
// This function starts a new line in the console out put;
void space()
{
printf("
");
}
// five different funtions for the pointers in the struct to be pointed at.
void play_function()
{
printf("Play >");
space();
}
void stop_function()
{
printf("Stop []");
space();
}
void pause_function()
{
printf("Pause ||");
space();
}
void forward_function()
{
printf("Forward -->");
space();
}
void back_function()
{
printf("Back <--");
space();
}
int main()
{
space();
// Make a new Audio struct named Player and pass in the function names to asign them to the struct pointers
audio Player = {play_function, stop_function, pause_function, forward_function, back_function};
Player.play_ptr(); // This calls the play function from the audio struct Player
Player.forward_ptr(); // This calls the forward function from the audio struct Player
Player.pause_ptr(); // This calls the pause function from the audio struct Player
Player.play_ptr(); // This calls the play function from the audio struct Player
Player.back_ptr(); // This calls the back function from the audio struct Player
Player.stop_ptr(); // This calls the stop function from the audio struct Player
}