Доброго времени суток! Изучаю программирование и языки Си,Rust. Как можно сделать на Си что то типа trait из Rust?
Вот примерный код
void say_colour(char *s);
void say_colour(char *s){ printf("машина цветом %s",s);}
typedef struct {
char z[10];
void(*say_colour)(char *s);
}Blue;
typedef struct{
void *colour;
}Car;
int main(int argc, char const *argv[]){
Blue b = {.z ="blue",.say_colour=say_colour};
Car car = {.colour = &b};
//b.say_colour(b.z);
car.colour.say_colour();
return 0;
}
В Rust я бы colour сделал бы типом trait . который имплементировали нужные мне структуры. Спасибо!