今天用TC2.0调试一链表相关操作程序,编译时都正确,结果在运行过程中却出了问题关于TC2.0中的浮点连接错误,提示错误:
scanf :floating point formats not linked
Abnormal program termination

还好英语还不是很菜,知道它的意思:scanf的浮点格式转换程序没有连接。

其中的链表创建程序为:
关于TC2.0中的浮点连接错误#include <malloc.h>
关于TC2.0中的浮点连接错误
#define NULL 0
关于TC2.0中的浮点连接错误
#define LEN sizeof(struct student)
关于TC2.0中的浮点连接错误
struct student
}

当在下述主函数main中调用时并没有出现问题:
}

如果修改main函数为:
}
则便会出现scanf的浮点格式转换程序没有连接的错误提示。
两个主函数差别并不大,下面的只是扩展了删除和插入的操作。

搜了下相关介绍,才知道原来这是TC2.0种的一个BUG。
TC开发时(80年代)由于DOS下的存储资源紧缺,所以在编译时一些无关的部分并没有加入进去。当在没发现需要做浮点转换时,就不将这个部分安装到可执行程序里。但有时TC不能正确识别实际确实需要浮点转换,因此才会出现上面的运行错误。

解决方法:设法告诉TC需要做浮点数输入转换。
比方说可以在上面的链表创建函数中增加一个float变量,并用它输入。更改后的程序为:
关于TC2.0中的浮点连接错误struct student *creat(void)
}

PS:大程序里由于变量很多,只要有了线索,TC就会把浮点转换连上,因此反而不常遇到这个问题。

相关文章:

  • 2021-10-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-16
  • 2022-12-23
  • 2021-04-15
  • 2021-12-09
猜你喜欢
  • 2022-12-23
  • 2021-11-24
  • 2021-05-29
  • 2021-07-20
  • 2021-04-14
  • 2021-08-27
  • 2022-12-23
相关资源
相似解决方案