删除结构是否构成ABI中断?

时间:2014-10-09 16:23:19

标签: c abi

说我有这个库:

// lib.h
typedef struct MyStruct {
    int a;
    int b;
} MyStruct;

int func(void);

所有函数都不使用MyStruct作为参数。是否可以在不破坏ABI的情况下删除MyStruct

1 个答案:

答案 0 :(得分:5)

ABI中断(与 API中断相对)没有严格的定义(AFAIK),但通常用于引用修改,比如说,一个库导致以前编译的代码不再正确加载/运行。

由于库源代码中未使用的结构定义不会(不应该)影响任何已编译的库工件,因此删除时不会有任何损坏(在运行时)。< / p>