реклама на сайте
подробности

 
 
> Как вызвать Си-функцию из ассемблерной части программы? (+), Blackfin
ASergej_R19
сообщение Apr 7 2007, 16:05
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 5-02-07
Из: Москва
Пользователь №: 25 060



Проект совмещает Си и асм.
В отдельном файле есть Си-функция, которую надо вызвать в отдельном файле, где все написано на асме - как это сделать?

Компилятор дает этой си-функции имя типа: c_func => c_func__Fv, но ругается, если пытаться в ассемблерной части написать типа .extern c_func__Fv...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Apr 8 2007, 13:54
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Ну это же стандартно решается:

#ifdef __cplusplus
extern "C" fun (...)
#endif // __cplusplus

Для с и asm - имеем nonmangled-имя, для с++ - mangled.

Или я не прав?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 8 2007, 14:54
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(sergeeff @ Apr 8 2007, 12:54) *
Или я не прав?

Не правы. После такого вседа и для всех имеем "нормальное сишное" имя. #ifdef это просто для переносимости исходника на "C" компиляторы, которые просто не поймут extern "C"


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 04:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.02092 секунд с 7
ELECTRONIX ©2004-2016