第11章Fortran和C的混合语言编程—授课版.pptVIP

第11章Fortran和C的混合语言编程—授课版.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章 Fortran和C的混合语言编程 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第一节 概述 一.调用约定 命名约定 命名约定是为了解决不同语言对变量名、参数名、过程名和函数名等标识符的不同处理,以及对名称标识符的不同长度限制等的有关规则、协议和约定 . 参数传递协议 参数传递是指主调函数/例程与被调函数/例程之间的信息传递与交换过程,混合语言编程时需要考虑参数的传递通过值传递还是通过引用传递?被调函数以何种顺序接收所传递给它的参数。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第一节 概述 二、数据类型与例程的等价形式 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第一节 概述 二.Fortran和C的混合编程方式 分别编译、独立运行 将Fortran和C各自要实现的功能模块源代码在各自的开发平台上编译连接成可执行文件并独立执行,二者的数据通过数据文件交换。这种模式的实现最为简单,容易掌握,但执行效率较低; 函数级调用 Fortran和C分别编译各自的功能模块源代码,得到各自的目标文件(.obj),然后集成链接这些obj 文件生成一个统一的可执行文件,实现对对方函数的调用,数据交换通过约定接口来实现。这种方法的缺陷是被调用模块一旦被修改,整个软件必须重新进行编译连接。软件的可维护性较差; 动态链接库方式 将需要被调用的功能模块源代码编译连接成动态连接库,然后通过约定的接口动态使用另外的语言调用该功能模块。这是目前普遍采用的一种方式,动态连接库(DLL)可以包含可执行代码、数据和各种资源,对其修改无需重新编译主调程序,具有较好的移植性和复用性 。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第二节 Fortran与C的函数级调用 _stdcall Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第二节 Fortran与C的函数级调用 对于Fortran,可在接口块的例程说明或例程头部加入!MS$ ATTRIBUTES编译伪指令告知编译器有关调用约定。其中,!MS$与!DEC$等同。 对于C语言,要在函数说明前面加上extern关键字说明函数来自外部或供外部使用,extern和函数说明中间加上_cdecl或_stdcall说明调用约定的属性。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第二节 Fortran与C的函数级调用 Fortran调用C的函数时,C的形参必须使用与Fortran实参同类型的指针变量,必须使用extern。 ! Fortran的接口块 INTERFACE FUNCTION SUM(I, J) !MS$ATTRIBUTES C, ALIAS:_Sum:: SUM !调用C语言的Sum函数 !MS$ATTRIBUTES REFERENCE::I, J INTEGER I, J, SUM END FUNCTION END INTERFACE /* C源程序*/ extern int _cdecl Sum(int *, int *) { … } Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 第二节 Fortran与C的函数级

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档