MyTetra Share
Делитесь знаниями!
Как происходит компиляция C/C++ кода. Единица трансляции
Время создания: 13.11.2023 09:50
Текстовые метки: язык, C, C++, Си, Си++, компиляция, трансляция, сборка, единица компиляции, единица трансляции
Раздел: Компьютер - Программирование - Язык C (Си)
Запись: xintrea/mytetra_syncro/master/base/1699858202gcx70s9f2t/text.html на raw.github.com

При существующем препроцессоре, единица (ключевое слово — она одна!) трансляции формируется методом тупой замены всех директив #include на содержимое включаемого файла. С поправкой на контроль рекурсивных директив #include, отработкой защитных #ifndef _МОЯ_ХЕРНЯ_ИНКЛЮДЕД и прочего #pragma once.


И только после этого единица трансляции передается компилятору. Компилятор располагает информацией о том, где и что определено (хотя бы, для отладочных символов), но это все.


На что мы можем надеяться, так это на то, что разработчик библиотек предусмотрел некую версионность своих творений и документировал границы совместимости. Отсюда всякие ворнинги о том, что такой-то вызов устарел, например, или начиная с такой-то версии есть новый вызов инициализации. Примеров тому масса (см. код ядра с его вечными #if LINUX_VERSION_CODE >= KERNEL_VERSION(x,y,z)).



Так же в этом разделе:
 
MyTetra Share v.0.60
Яндекс индекс цитирования