【发布时间】:2016-10-27 15:44:58
【问题描述】:
假设您正在处理需要保持 ABI 兼容性的库的源代码。这个库有一个 .c 文件,它定义了一个 static 函数,如下所示:
static int
wl_message_count_arrays(const struct wl_message *message)
{
// ...
}
此函数未在任何导出的标头中公开,但我想在私有标头中公开它。为此,该功能不能标记为static。删除函数签名的 static 修饰符会改变 ABI 吗?
【问题讨论】:
-
更改 ABI 和 更改 ABI 以破坏现有程序 是两件不同的事情。你肯定在做第一个,但也许不是第二个。
-
不。我想唯一的风险是名称冲突,以防有另一个函数具有相同的名称,但具有不同的接口。
-
@tofro 如果您添加一个解释您的评论的答案,我会很乐意选择它。
标签: c backwards-compatibility abi