Этот вопрос основан на предыдущем вопросе: Как компиляция C# обходится без файлов заголовков?
Подтверждение того, что компиляция C# использует несколько проходов, по существу отвечает на мой вопрос. оригинальный вопрос. Кроме того, в ответах указано, что C# использует метаданные сигнатур типа и метода, хранящиеся в сборках, для проверки синтаксиса кода во время компиляции.
Вопрос: как C/C++/Objective-C узнает, какой код загружать во время выполнения, который был связан во время компиляции? И если привязать это к знакомой мне технологии, как это делает C#/CLR?
Поправьте меня, если я ошибаюсь, но для C#/CLR мое интуитивное понимание заключается в том, что определенные пути проверяются на наличие сборок при выполнении, и в основном весь код загружается и связывается динамически во время выполнения.
Изменить: обновлено, чтобы включить C++ и Objective. -C с C.
Обновление: Чтобы уточнить, что мне действительно интересно, так это то, как компиляция C/C++/Objective-C соответствует «внешне определенный» символ в моем исходном коде с фактической реализацией этого кода, каковы выходные данные компиляции и, по сути, как выходные данные компиляции выполняются микропроцессором для плавной передачи управления в код библиотеки (с точки зрения указателя инструкций). Я сделал это с помощью виртуальной машины CLR, но мне интересно узнать, как это концептуально работает в C++/Objective-C на реальном микропроцессоре.
Подробнее здесь: https://stackoverflow.com/questions/192 ... -libraries
Как C/C++/Objective-C сравниваются с C#, когда дело доходит до использования библиотек? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение