电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C数值计算程序移植到VC开发环境VIP免费

C数值计算程序移植到VC开发环境_第1页
1/16
C数值计算程序移植到VC开发环境_第2页
2/16
C数值计算程序移植到VC开发环境_第3页
3/16
下载后可任意编辑一. 引言由于 C 语言长期广泛应用,现存有大量经过严格检验的有用 C 程序,它们可以用来很好地解决工程应用中的实际问题。但是旧的 C 程序往往有很多与现代编译器不兼容的地方,因此我们要根据具体的代码情况进行相应的移植处理。本文以改写清华大学出版社出版的 C 常用算法程序集(以下简称“程序集”)为例,说明如何将旧的 C 程序移植到目前普遍使用的 C/C 开发环境 Visual C 下。除了列举一些移植程序的方法和技巧,本文还给出两个 C 类:数组类和矩阵模板类,以例示如何对 C 程序进行面对对象的包装处理。二。.基于 C 语言分析和改换我们知道,Visual C 支持 ANSI C,下面列举源代码影响编译、不兼容的情况和相应解决方案,并给出基于 ANSI C 标准的函数的基本调用例子。1. 函数定义参数声明没有采纳现代风格,例如全选主元高斯消去法:int agaus(a,b,n)int n;double a[],b[];{……;}参数声明应改为数组形式:int agaus(double a[],double b[],int n)或者改为指针形式:int agaus(double* a,double* b,int n); 调用方法:agaus(&a[0][0],&b[0],n); /* a 二维双精度型数组、b 一维双精度型数组,n 整型变量 */C/C 中用下标法和指针法都可以访问一个数组,设有数组 a,则 a[i]和*(a i)无条件等价。假如指针变量 p 指向数组中的一个元素,则 p 1 指向同一数组的下一个元素。若 p 的初值为&a[0],则 p i 和 a I 都是 a[i]的地址;*(p i)和*(a i)就是 p i 或 a i 所指向的数组元素,即a[i];指向数组的指针变量也可以带下标,如 p[i]与*(p i)等价。所以,在实际使用该函数,下载后可任意编辑假如遇到数组作形参,可以将数组第一个元素地址作为实参传值调用函数。2. 动态存储分配函数返回 void*型指针变量,它指向一个抽象类型的数据,ANSI C 标准规定在将它赋值给另一个指针变量时需要进行强制类型转换,所以下面代码 Line1 要用 Line2替换:double* v;v=malloc(n*m*sizeof(double));/* Line1 */v=(double*)malloc(n*m*sizeof(double));/* Line2 */3. 某些算法函数可能要调用一些用户自定义函数,如最佳一致逼近的里米兹方法:void hremz(a,b,p,n,eps)int n;double a,b,eps,p[];{ extern double hremzf();…}原方法使程序集与应用程序的耦合程度增加,缺乏灵活性,可以改为:void hremz(double a,double b,double p[],int n,do...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C数值计算程序移植到VC开发环境

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部