Предположим, вы работаете над источником библиотеки, которая должна поддерживать совместимость с ABI. Эта библиотека содержит файл .c, который определяет static
функцию как так:Будет ли удалять `static` из частной функции break ABI совместимость?
static int
wl_message_count_arrays(const struct wl_message *message)
{
// ...
}
Эта функция не подвергается в каких-либо экспортируемых заголовков, но я хотел бы, чтобы выставить его в личном заголовке. Для этого функция не может быть помечена static
. Удалил бы ли модификатор static
сигнатуры функции ABI?
* Изменение ABI * и * изменение ABI таким образом, чтобы он нарушал существующие программы * - это две разные вещи. Вы определенно делаете первый, но, возможно, не второй. – tofro
Нет. Я предполагаю, что единственным риском является столкновение имен, если есть еще одна функция с тем же именем, но с другим интерфейсом. –
@tofro Если вы добавите ответ, который объяснит ваш комментарий, я с радостью его выберу. – ybakos