Я знаю, что использование ключевого слова static
в C для функции ограничивает функцию единиц компиляции, в которой она определена. Теперь я просматриваю видимость символов, и я немного запутался в различии между функциями static
и функцией, помеченной __attribute__((visibility("hidden")))
, или с помощью параметра командной строки -fvisibility=hidden
.
У меня такое чувство, что способ изменения вещей под капотом совсем не то же самое, но я не знаю, какая разница и что он подразумевает при работе с ними в реальном коде. Какие изменения между ними и когда вы хотите использовать один над другим?