老旧C语言编译器解决了一个大问题
已有 7435 次阅读
2011-5-22 09:55
|个人分类:地球物理及仪器|系统分类:科研笔记|
C语言, 16位, 编译器, BORLAND, int
现在很少有人在台式机上用BORLAND C语言编译器,一般用微软的C语言编译器。然而,最近的一件事情使我的对老旧的BORLAND C语言编译器括目相待。
我从网上下载了3个C语言源文件,一个是主程序文件、一个是子程序文件、第三个是头文件。在Microsoft Visual Studio .NET 2003中建立C/C++项目后,导入这三个文件编译,出现了200多个警告和200多个错误!仔细分析源代码后,发现源代码没有什么问题。 试着做了一些改动,但无济于事。我确信这个微软的C语言编译器有大问题。
怎么办? 我首先想用LINUX操作系统的C语言编译器,但一想到程序需要在LINUX下运行,要处理的数据需要从WINDOWS折腾到LINUX,很麻烦,还是放弃了。
最后,我想到了DOS下的一些老旧的C语言编译器,估计能够解决问题。幸好我电脑里有BORLAND C编译器和集成开发环境。建立项目,将源程序和头文件导入后,发现编译能够通过,只出现了6个警告,但程序运行结果不对。我估计是源程序的int 和BORLAND C编译器的int类型长度不一致导致的问题。 源程序中的int是32位,而BORLAND C中的int是16位。 因此,对原有的程序做了如下修改:
1.把源程序中的int全部修改成long int。
2.对于源程序中的short int,不做修改。
修改后,得到了正确的输出结果。
再通过一个上午修改,终于让程序能够处理我的数据,解决了项目中的一个关键问题。
https://blog.sciencenet.cn/blog-39626-446706.html
上一篇:
科学网的战争与文明下一篇:
科学网博客: 玩儿还是认真?