przekazanie argumentow roznego tyou

0

Witam serdecznie,
Czy można przekazać z jednej funkcji argumenty rożnego typu np int i string?
Przykładowo mam funkcję:

}```

i pozniej ja wywowalac:

string dane1, dane2;
int dane3;
wczytajdane(dane1, dane2, dane3);

pozdrawiam
1

Można

0

void * to typ na dowolny wskaźnik, ale skądś potem trzeba wiedzieć czym są te dane czyli ponownie trzeba rzutować np. (char*).
Albo można zrobić strukturę, która będzie zawierać np. typ danych i ich referencje, a potem w funkcji odkodowywać po metadanych tak zbudowanych.

0

Ewentualnie można zrobić tak jak jest w funkcji printf pierwszy jest

 printf(char*, void *a)

gdzie char* to string, i trzeba go sparsować, po czym wiadomo na co zrzutować tego voida.

0

Ewentualnie obiektowość zostaje, można stworzyć abstrakcyjny model vektora dla różnych typów danych, i przy określaniu elementu będzie automatycznie rzutowało na jego typ i zwracało go.

0

Ewentualnie można zrobić ogólny typ obiektu, który będzie tylko pośrednikiem do tłumaczenia prawie jak polimorfizm, ale danych, a nie metod.

0

Ewentualnie można tak jak jest zbudowane void **args, w sumie tak jest też w printf, tablica wskaźników dzięki temu można dać dowolną ilość argumentów, zmiennych, ale trzeba wiedzieć ile ich jest gdyż może program wyjść po za tablice i odczytać jakieś losowe dane.

Główny problem i tak jest z metadanymi gdyż one są tracone i trzeba je jakoś na nowo ustalić żeby wiedzieć czy te liczbę 65 traktować jako 65 czy może jako 'a' lub jeszcze coś innego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1