ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
1245842 Топик полностью
VladislavS. (03.10.2022 10:28 - 10:41, просмотров: 233) ответил Dingo на вот, похоже на ответ. То есть из plain C можно обращаться уже к C++ выходит?
Без некоторого рукоблудства нет. В С++ есть механизм перегрузки функций. Чтобы компилятор различал разные кандидаты на перегрузку при компиляции к именам функций добавляются префиксы, зависящие от аргументов. В объектных файлах эти имена могут быть очень причудливыми. Например, SysTick_Handler() превратится в _Z15SysTick_Handlerv. Если функции с аргументами, то имя сильно разрастается. Функцию с таким именем из С-кода не вызвать. Для того чтобы отключить этот механизм 

мы даём

указание компилятору extern "C". И тогда имя в объектном файле совпадёт с тем что ему дал бы С-компилятор. Это возволяет из С-кода вызвать С++ функцию.