I a working on designing a generic queue
https://github.com/Bhaumik-Tandan/Generic_queue_in_c
But i am facing a problem when I am creating a generic fucntion enqueue for all types of data types
#define enqueue(s,a) _Generic(a, int: enqueuei__19BIT0292, char*: enqueues__19BIT0292,double: enqueuef__19BIT0292,char:enqueuec__19BIT0292,float:enqueuef__19BIT0292)(s,a)
The bellow line treats 'c' as int and call the respective function.
enqueue(s,'c')
Whereas if I want to call function of char, I need to write
enqueue(s,(char)'c')
I know in C characters are internally treated as integers, but is there any way to tackle this, I don't want to write (char) in the brackets or create a new variable each time I pass a character