-
- Без некоторого рукоблудства нет. В С++ есть механизм перегрузки
функций. Чтобы компилятор различал разные кандидаты на перегрузку
при компиляции к именам функций добавляются префиксы, зависящие от
аргументов. В объектных файлах эти имена могут быть очень
причудливыми. Например, SysTick_Handler() превратится в
_Z15SysTick_Handlerv. Если функции с аргументами, то имя сильно
разрастается. Функцию с таким именем из С-кода не вызвать. Для того
чтобы отключить этот механизм VladislavS.(160 знак., 03.10.2022 10:28 - 10:41)
- Это позволяет из ASM, и любого другого языка вызвать С++ функцию,
если он поддерживает Си'шное соглашение о вызовах. - =AlexD=(03.10.2022 10:31)
- В общем случае именно так. - VladislavS.(03.10.2022 10:33)
- Это позволяет из ASM, и любого другого языка вызвать С++ функцию,
если он поддерживает Си'шное соглашение о вызовах. - =AlexD=(03.10.2022 10:31)
- Это С++, просто указание компилятору, что вот к этому конкретному имени функции применяется asm трансляция имён в стиле Си, а не С++. - =AlexD=(03.10.2022 10:24)
- Без некоторого рукоблудства нет. В С++ есть механизм перегрузки
функций. Чтобы компилятор различал разные кандидаты на перегрузку
при компиляции к именам функций добавляются префиксы, зависящие от
аргументов. В объектных файлах эти имена могут быть очень
причудливыми. Например, SysTick_Handler() превратится в
_Z15SysTick_Handlerv. Если функции с аргументами, то имя сильно
разрастается. Функцию с таким именем из С-кода не вызвать. Для того
чтобы отключить этот механизм VladislavS.(160 знак., 03.10.2022 10:28 - 10:41)