Недавно начала учить С , и уже услышала, что там очень много всего от его предшественника - языка С. Отсюда вопрос. Если у нас есть какая-то функция из С, возможно ли вызвать её из С ? Или у них не настолько прочная связь?
Если сильно нужны именно Сишные функции — используйте. Только не подключайте Сишные заголовочные файлы, используйте стандартные обертки для них (вместо math.h, например cmath) для более корректной совместимости с C ; если это нестандартные Сишные функции — оберните сами их в extern "C". Если неясно зачем всё это — попробуйте собрать такой код:
#include
#include
#include
using namespace std;
int main()
{
float a = 1.2;
cout << abs(a) << endl;
return 0;
}
А затем сделайте то же самое, только первые 2 строчки замените на это:
#include
#include
разберитесь почему программы ведут себя по-разному
Чтобы C понимал сишные функции, их заголовки нужно обернуть в extern "C" - или каждую, или блоком. Иначе линкер пытается найти плюсовые функции, для которых включено искажение имен.