Я не уверен, есть ли у этого метода создания нескольких определений для функции, обрабатывающей различные типы переменных, имя, но мне интересно, есть ли в этом преимущество. И почему было бы не лучше просто определить функцию пустого указателя.
typedef enum{
my_char,
my_u8,
my_flt
}my_type
char* foo_char(char* bar);
uint8_t* foo_u8(uint8* bar);
float* foo_f(float* bar);
void* foo(void* bar, my_type type);
char* foo_char(char* bar){
return food(bar, my_char);
}
uint8_t* foo_u8(uint8* bar){
return foo(bar, my_u8);
}
float* foo_f(float* bar){
return foo(bar, my_float);
}
void* foo(void* bar, my_type type){
switch(type){
case(my_char):
//code
case(my_u8):
//code
case(my_float):
//code
default():
}