说我有这个库:
// lib.h
typedef struct MyStruct {
int a;
int b;
} MyStruct;
int func(void);
Run Code Online (Sandbox Code Playgroud)
这些函数都不使用MyStruct作为参数.是否可以在MyStruct
不破坏ABI的情况下移除?
的ABI断裂(而不是一个API断裂)不具有一个严格的定义(AFAIK),但是通常认为是指变形,比方说,使先前编译的代码不再负载的库/正常运行.
由于库源代码中未使用的结构定义不会(不应该)影响任何已编译的库工件,因此删除时不会有任何可能被破坏的(在运行时).