Of course! Here's an improved and more readable version of the C program that implements a stack data structure supporting any data type using void pointers:

```c
#include <stdio.h>
#include <stdbool.h>

#define MAX_SIZE 100

typedef struct {
    void *arr[MAX_SIZE];
    int top;
} Stack;

void initialize(Stack *stack) {
    stack->top = -1;
}

bool isEmpty(Stack *stack) {
    return stack->top == -1;
}

bool isFull(Stack *stack) {
    return stack->top == MAX_SIZE - 1;
}

void push(Stack *stack, void *data) {
    if (isFull(stack)) {
        printf("Stack Overflow: Cannot push element, stack is full.\n");
    } else {
        stack->arr[++stack->top] = data;
    }
}

void* pop(Stack *stack) {
    if (isEmpty(stack)) {
        printf("Stack Underflow: Cannot pop element, stack is empty.\n");
        return NULL; // Return NULL indicating failure
    } else {
        return stack->arr[stack->top--];
    }
}

void* peek(Stack *stack) {
    if (isEmpty(stack)) {
        printf("Stack is empty.\n");
        return NULL; // Return NULL indicating failure
    } else {
        return stack->arr[stack->top];
    }
}

int main() {
    Stack stack;
    initialize(&stack);

    int num1 = 10;
    int num2 = 20;
    double pi = 3.14159;
    char letter = 'A';

    push(&stack, &num1);
    push(&stack, &num2);
    push(&stack, &pi);
    push(&stack, &letter);

    printf("Top element (char): %c\n", *(char*)peek(&stack));
    printf("Top element (double): %lf\n", *(double*)peek(&stack));
    printf("Popped element (double): %lf\n", *(double*)pop(&stack));
    printf("Popped element (int): %d\n", *(int*)pop(&stack));

    printf("Top element (int): %d\n", *(int*)peek(&stack));

    return 0;
}
```

This version of the program uses void pointers (`void*`) to allow pushing and popping elements of any data type onto the stack. The main function demonstrates the usage of different data types (int, double, char) in the stack. Remember that you need to cast the pointers back to the appropriate data type when peeking and popping elements from the stack.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence