История изменений
Исправление former_anonymous, (текущая версия) :
нет, тупо копируем структуры. Типа того
struct A_v1
{
float f;
};
struct A_v2
{
float f;
char c;
};
struct A_v3
{
float f;
char c;
int data;
};
A_v1 get_data_v1();
A_v2 get_data_v2();
A_v3 get_data_v3();
/* Simple alias */
#define get_data get_data_v3
typedef struct A_v3 A;
Не очень красиво, но 100% ABI совместимо и переносимо. Даже больше - с этим решением можно в новых версиях переупорядочивать поля ничего не сломав.
Исправление former_anonymous, :
нет, тупо копируем структуры. Типа того
struct A_v1
{
float f;
};
struct A_v2
{
float f;
char c;
};
struct A_v3
{
float f;
char c;
int data;
};
A_v1 get_data_v1();
A_v2 get_data_v2();
A_v3 get_data_v3();
/* Simple alias */
#define get_data get_data_v3
typedef struct A_v3 A;
Не очень красиво, но 100% ABI совместимо и переносимо.
Исходная версия former_anonymous, :
нет, тупо копируем структуры. Типа того
struct A_v1
{
float f;
};
struct A_v2
{
float f;
char c;
};
struct A_v3
{
float f;
char c;
int data;
};
A_v1 get_data_v1();
A_v2 get_data_v2();
A_v3 get_data_v3();
/* Simple alias */
#define get_data get_data_v3
Не очень красиво, но 100% ABI совместимо и переносимо.