4
说我有这个库:移除结构是否构成ABI中断?
// lib.h
typedef struct MyStruct {
int a;
int b;
} MyStruct;
int func(void);
的所有功能都使用MYSTRUCT作为参数。是否可以在不破坏ABI的情况下删除MyStruct
?
说我有这个库:移除结构是否构成ABI中断?
// lib.h
typedef struct MyStruct {
int a;
int b;
} MyStruct;
int func(void);
的所有功能都使用MYSTRUCT作为参数。是否可以在不破坏ABI的情况下删除MyStruct
?
一种ABI打破(而不是一个API断裂)不具有一个严格的定义(AFAIK),但是通常认为是指变形,比方说,使先前编译的一个库代码不再加载/正确运行。
作为库中未使用的结构定义源代码不会影响任何已编译的库工件,也没有什么可以通过删除它(在运行时)被破坏。
否。删除'MyStruct'将构成API中断。 – fuz 2014-10-09 16:24:23
@FUZxxl:但OP的询问关于A ** B ** I。 – 2014-10-09 16:26:41
@OliverCharlesworth哦,是的,在这种情况下删除'MyStruct'不会破坏ABI。 – fuz 2014-10-09 16:29:01