天桥陨石分享 http://blog.sciencenet.cn/u/chrujun 让地球物理仪器飞起来

博文

老旧C语言编译器解决了一个大问题

已有 7197 次阅读 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

上一篇:科学网的战争与文明
下一篇:科学网博客: 玩儿还是认真?
收藏 IP: 60.4.58.*| 热度|

5 武夷山 吕喆 杨华磊 曾新林 zdlh

发表评论 评论 (13 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-14 22:19

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部