В С++ можно задать способ подключения функций. В частности, в Borland С++ можно подключать функцию как С-функцию или как С++-функцию. По умолчанию функции подключаются как С++-функции. Однако, используя спецификацию редактирования связей (linkage specification), можно определить другой тип подключения функций. Общая форма спецификации имеет следующий вид:
extern "язык" прототип_функции
Здесь язык обозначает желаемый язык. В Borland С++ язык должен быть или С, или С++, но, в принципе, возможны реализации, включающие и другие типы языков.
Следующая программа задает подключение функции myCfunc() как С-функции:
#include <iostream.h>
extern "С" void myCfunc(void);
int main()
{
myCfunc();
return 0;
}
// компоновка как С-функции
void myCfunc(void)
{
cout << "This links as а С function .\n";
}
ЗАМЕТКА: Ключевое слово extern является необходимой частью спецификации подключения. Более того, спецификация должна быть глобальной. Она не может использоваться внутри функций. |
Можно задавать спецификацию подключения нескольких функций одновременно:
extern "язык" {
прототипы
}
Спецификацию подключения используют редко.