Как включить привязку библиотеки с плавающей запятой в TurboC?

Я новичок в языке C... Просто хочу спросить, как включить связывание библиотеки с плавающей запятой в TurboC?


person Aaron    schedule 03.06.2011    source источник
comment
Почему за последние несколько недель так много вопросов по TurboC/TurboC++? Этот компилятор (и целевая платформа) старый и нестандартный. Существует несколько хороших бесплатных современных цепочек инструментов C/C++ (и IDE для них). Сегодня вам не нужно беспокоиться о библиотеках с плавающей запятой, если только вы не занимаетесь встроенной работой. Если вы конкретно интересуетесь компьютерной археологией, это одно, но если вы ищете инструменты, которые помогут вам изучить C или C++, пожалуйста, перейдите на что-то другое (для собственной выгоды и здравомыслия, если нет другой причины).   -  person Michael Burr    schedule 03.06.2011
comment
@Michael Burr, на самом деле, я готов двигаться дальше, но сначала я должен следовать требованиям нашей школы. Я знаю, что это печально, но я не могу не сделать это...   -  person Aaron    schedule 03.06.2011
comment
@aerohn: мне жаль, что это навязано вам; Я понимаю, что иногда это выходит из-под вашего контроля (мы все были в подобных ситуациях). Интересно, в школах до сих пор преподают географию по картам времен СССР?   -  person Michael Burr    schedule 03.06.2011
comment
@Майкл Берр: определенно! Они задействовали причину, по которой мы должны достаточно свободно владеть старыми языками, прежде чем переходить на другой уровень языка. Они сказали, что после этого мне будет легко понять язык, который появится. Мне интересно, почему!?   -  person Aaron    schedule 03.06.2011
comment
@aerohn: если они действительно сказали, что использование Turbo C научит вас лучшим основам, чем изучение C с использованием лучшего компилятора, то они просто ошибаются, так что, вероятно, на самом деле нет причин, кроме того, что я делал это раньше. Извиняюсь. Дело не в самом языке, проблема в его конкретной реализации, которая является предстандартной, специфичной для DOS и не поддерживается уже 20 лет.   -  person Steve Jessop    schedule 10.06.2011
comment
@Steve Jessop: Хорошо... Я понимаю :(   -  person Aaron    schedule 10.06.2011


Ответы (1)


Из часто задаваемых вопросов о comp.os.msdos.programmer:

«Форматы с плавающей запятой не связаны» — это ошибка времени выполнения Borland (Borland C или C++, Turbo C или C++). Компиляторы Borland стараются быть умными и не компоновать библиотеку операций с плавающей запятой (f-p), если она вам не нужна. Увы, все они принимают неправильное решение. Одним из распространенных случаев является то, что вы не вызываете никаких функций f-p, но у вас есть %f или другие форматы f-p в вызовах scanf() или printf(). Лекарство состоит в том, чтобы вызвать функцию f-p или, по крайней мере, заставить ее присутствовать в ссылке.

Для этого определите эту функцию где-нибудь в исходном файле, но не вызывайте ее:

static void forcefloat(float *p)   
{
     float f = *p;
     forcefloat(&f);    
}

Он не обязательно должен быть в модуле с основной программой, если он находится в модуле, который будет включен в ссылку.

person Michael Burr    schedule 03.06.2011