说我有这个库:
// lib.h
typedef struct MyStruct {
int a;
int b;
} MyStruct;
int func(void);
所有函数都不使用MyStruct作为参数。是否可以在不破坏ABI的情况下删除MyStruct
答案 0 :(得分:5)
ABI中断(与 API中断相对)没有严格的定义(AFAIK),但通常用于引用修改,比如说,一个库导致以前编译的代码不再正确加载/运行。
由于库源代码中未使用的结构定义不会(不应该)影响任何已编译的库工件,因此删除时不会有任何损坏(在运行时)。< / p>