Друзья, у меня есть два файла, ac и bc.Я определил функцию foo в ac, которая вызывается из bc
. Насколько я понимаю, когда компилятор пытается скомпилировать bc, он увидит, что реализация foo
находится не в b, поэтомудобавит запись для foo в таблицу символов, которая будет разрешена во время компоновки.Я правильно понял эту концепцию.
Теперь у меня есть другая функция printf в bc, которая реализована в glibc.Из того, что я понимаю, printf может быть связан во время загрузки или во время выполнения.Если printf будет связан во время выполнения, для каждого вызова printf должна быть заглушка, которая будет разрешена во время выполнения с помощью системного вызова.
мой вопрос: «Правильно ли мое понимание ???+ как компилятор определяет, что функция foo будет разрешена компоновщиком, а не во время выполнения ??? "
я заметил несколько похожих вопросов, но не смог понять их значение здесь ???