![]() |
|
Модераторы: bsa |
![]()
|
|
| vdm |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
EXTERN_C - в каких случаях и для чего используется, не могли бы розъяснить подробнее?
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
применяется для, например, запрета перегрузки.
суть этой фигни в том, что она говорит компилятору не видоизменять имя функции при внесении ее во внутренюю таблицу при компиляции (и, возможно, при экспорте из модуля). Т.о. компилятор не может отличить функцию void foo() от void foo(int) , т.к. они для него будут называться (в случае применения EXTERN "C") одинаково (если быть точный то зваться будут они "foo"). Эта штука есть наследие Си, и очень не рекомендуется ведущими сабоководами к использованию, однако, иногда необходима. Еще пример такой необходимости - экспорт функций в библиотеке. Стандартна на видоизменения имени С++ функции нет, и, производители разных компиляторов делают все по своему. Если не будет EXTERN "C", то два модуля, скомпилированных разными компиляторами не будут работать. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |