История изменений
Исправление
MOPKOBKA,
(текущая версия)
:
Ну тут главное сам принцип а не библиотека. GValue может быть и строкой, и числом, и еще всяким разным.
Ну и вот тебе самый простой вариант для понимания:
enum variant_type {
VARIANT_INTEGER,
VARIANT_REAL,
VARIANT_STRING
};
struct variant {
enum variant_type type;
union {
int integer;
float real;
char *string;
};
};
void print_variant(struct variant *self)
{
switch (self) {
case VARIANT_INTEGER:
printf("%d\n", self->integer);
break;
case VARIANT_REAL:
printf("%f\n", self->real);
break;
case VARIANT_STRING:
printf("%s\n", self->string);
break;
}
}
struct variant *variant_new_integer(int value);
struct variant *variant_new_real(float value);
struct variant *variant_new_string(const char *value);
Исправление
MOPKOBKA,
:
Ну тут главное сам принцип а не библиотека. GValue может быть и строкой, и числом, и еще всяким разным.
Ну и вот тебе самый простой вариант для понимания:
enum variant_type {
VARIANT_INTEGER,
VARIANT_REAL,
VARIANT_STRING
};
struct variant {
enum variant_type type;
union {
int integer;
float real;
char *string;
};
};
void print_variant(struct variant *self)
{
switch (self) {
case VARIANT_INTEGER:
printf("%d\n", self->integer);
break;
case VARIANT_REAL:
printf("%f\n", self->real);
break;
case VARIANT_STRING:
printf("%s\n", self->string);
break;
}
}
Исправление
MOPKOBKA,
:
Ну тут главное сам принцип а не библиотека. GValue может быть и строкой, и числом, и еще всяким разным.
Исходная версия
MOPKOBKA,
:
Ну тут главное сам принцип а не библиотека.