Step 5 (S-7001)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/537/step/5

Step 5 (S-7001) 1.png

[00:00 - 00:16] для того чтобы разобраться как работает программа давайте вспомним о том что такое линковка не этапе компиляции в места вызова функции подставлять имена функций после этого на этапе линковки


[00:16 - 00:36] имена функций в местах вызова заменяются на адреса тех вот соответственно в тот момент когда компоновщик ищет адрес там типа может произойти 1 из 2 ошибок 1 ошибка это которое означает что


[00:36 - 00:54] в каком то месте есть вызов некоторых функций по имени но соответствующую тела и функции ни в 1 из объектных файлов либо multiple дефинишен это означает что 1 и та же функция встречается в объектных файлах несколько раз


[00:54 - 01:13] странный способ получить multiple дефинишен заключается в том что вы определяете некоторые функцию не в файле с кодом а в заголовочных соответственно если это заголовочные файлы


[01:13 - 01:30] с баша функции включается в 2 файла то в результате вы получаете 2 файла в каждом из которых определена эта функция


[01:30 - 01:36] поэтому не стоит определять функцию в заголовочных