Czy istnieje przyzwoita biblioteka C z otwartym źródłem do przechowywania i manipulowania zmiennymi dynamicznie wpisanymi (warianty a.k.a.)? Interesują mnie przede wszystkim wartości atomowe (int8, int16, int32, uint, smings, blobs itp.), A także macierze w stylu JSON i obiekty oraz obiekty niestandardowe. Ważnym przypadkiem, w którym taka biblioteka byłaby przydatna, jest praca z bazami danych SQL.Biblioteka typów typów danych dla C
Najbardziej oczywistym cechą takiej biblioteki byłby pojedynczy typ dla wszystkich obsługiwanych wartości, np
struct Variant {
enum Type type;
union {
int8_t int8_;
int16_t int16_;
// ...
};
};
Inne cechy mogą obejmować przekształcenie Wariant obiektów do/z struktury C (stosując tabelę wiążącą) konwersja wartości do/z ciągów i integracja z istniejącą biblioteką baz danych, taką jak SQLite.
Uwaga: nie wierzę, że to jest pytanie, to duplikat numeru Any library for generic datatypes in C?, który odnosi się do "kolejek, drzew, map, list". To, o czym mówię, koncentruje się bardziej na tym, aby praca z bazami danych SQL była równie sprawna, jak praca z nimi w językach interpretowanych.
Wariant? C używa 'void *' do tego ... – kennytm
@KennyTM: Nie sądzę, że 'void *' jest odpowiednim fundamentem dla funkcji, takiej jak PHP 'sqlite_fetch_object' naśladowanej w C (bez pisania/używania biblioteki wariantów lub podobnej). –
Nie sądzę, że słowo "atomowy" oznacza to, co według ciebie oznacza. – JXG