статические переменные во встроенной функции

Я полагаю, что компилятор headers создает много копий переменной, но headers компоновщик выбирает одну cpp и заставляет все остальные linker ссылаться на нее. У меня headers были похожие результаты, когда cxx я пытался создать разные inline-functions версии встроенной функции; если linker функция фактически не была headers встроена (режим отладки), все cpp вызовы направлялись к одной headers и той же функции независимо cxx от исходного файла, из которого linker они были вызваны.

Подумайте cpp на мгновение как компилятор cxx — как же иначе? Каждая единица cxx компиляции (исходный файл) независима linking от других и может быть скомпилирована header отдельно; поэтому каждый cxx должен создать копию переменной, думая, что cpp она единственная. Компоновщик c++ имеет возможность выйти за cxx эти границы и настроить ссылки cpp как для переменных, так и cxx для функций.

c++

header

linker

inline-functions

2022-10-30T14:27:40+00:00
Вопросы с похожей тематикой, как у вопроса:

статические переменные во встроенной функции