问我有一个 Turbo C 程序出了问题,它崩溃了,并显示“浮点格式未链接”。
答一些用于小型机器的编译器,包括 Turbo C(以及 Ritchie 的原始 PDP-11 编译器),会在看起来不需要时省略某些浮点支持。特别是,非浮点版本的printf和scanf通过不包含处理%e, %f,而%g的代码来节省空间。碰巧 Borland 判断程序是否使用浮点的启发式方法不足,程序员有时必须插入一个对浮点库函数的虚拟调用(例如sqrt;任何一个都可以)来强制加载浮点支持。(有关更多信息,请参阅 comp.os.msdos.programmer FAQ 列表。)
一个部分相关的、导致类似错误消息(可能是“浮点未加载”)的问题,在某些 MS-DOS 编译器中,当链接了错误的浮点库变体时,似乎也会发生。请检查您的编译器手册中关于各种浮点库的说明。
其他链接:另一种可能性