Fortran与VisualC_混合编程研究
- 格式:pdf
- 大小:117.69 KB
- 文档页数:4
VC++调用Fortran子程序VC++友好的界面制作和Visual Fortran强大的计算和数据处理功能,两者结合可开发行程界面友好、操作直观方便、功能强大的应用程序。
如何进行VC++调用VisualFortran子程序模块,就成了需要解决的问题。
1、VC++调用FORTRAN子程序的方式(1)同一工程包含VC++和Fortran语言文件对同一版本集成后的编译器可以根据不同的扩展名选择编译方式,生成目标代码文件.OBJ,然后按照指定的调用方式进行链接,生成可执行文件.EXE。
(2)VC++工程文件引用Fortran语言生成的.OBJ或.LIB文件对不同版本的编译器安装集成后,VS不会自动根据文件扩展名选择编译方式,这时需用不同的工程文件。
首先对Visual Fortran 建一工程文件,生成.OBJ文件或.LIB文件,然后在VC++工程中按照指定的调用方式进行调用,编译链接,生成可执行文件.EXE。
(3)VC++工程文件调用Fortran语言生成的.DLL将已有的Fortran程序生成dll模块,有利于移植和修改,可提高效率,这样即使原dll模块中的算法做过修改,只要保证函数或子例行程序名字和入口参数不变,主调用过程无须进行重新修改或者编译。
2、VC++中的声明在C++语言中调用Fortran的函数或模块,必须在C++语言的函数名前面冠以_s td call或_cdecl关键字申明调用方式,以便编译器按照约定方式进行正确的参数传递,包括参数传递顺序、参数传递方式、堆栈处理和命名修饰等问题。
C++语言调用Fortran模块的声明:extern “C” {void _stdcall SUBROUTINE(形式参数1,float TC[],float PC,……);float _stdcall FUNCTION(形式参数1,float TC[],float PC,……); } 或extern “C” {void _cdecl SUBROUTINE(形式参数1,float TC[],float *PC,……);float _cdecl FUNCTION(形式参数1,float TC[],float *PC,……); } 其中TC为数组变量。
C/C++/FORTRAN 混合编程混合编程在软件编程中是经常遇到的问题,尤其是C/C++/FORTRAN的混合编程,本文主要说明以上三种语言混合编程中经常遇到的问题,同时,也说明了不同平台下混合编程应注意的问题。
混合语言编程要注意的问题主要体现在:函数调用和数据结构的存储。
1 Windows平台函数:由于Fortran编程语言没有大小写之分,Windows平台下的混合语言编程要注意的主要是大小写的问题。
考虑到编译器的差异,可以用下面的方式进行跨平台编程的函数声明。
( C/C++编译器使用Microsoft Visual C++ 6.0, Fortran编译器使用 Digital Visual Fortran 6.0)。
假设一个C的函数为 void cFunction(); 那么,只需要在它的头文件里面进行如下定义即可:#ifdef __cplusplusextern “C” void {#endifextern void __stdcall CFunction();#define cFunction CFUNCTION#ifdef __cplusplus}#endif这样,在Fortran或者C++的程序里面就可以直接调用了。
假设是一个Fortran函数SUBROUTINE FFUNCTION(); 那么,在C++头文件里进行如下的定义就可以了:#ifdef __cplusplusextern “C” void {#endifextern void __stdcall ffunction();#define ffunction FFUNCTION#ifdef __cplusplus}#endif这样,就可以在C++的程序里面直接调用。
由于C编译器里面,没有定义__cplusplus这个环境变量,因此,C文件里面,也可以直接使用这个头文件。
如果是一个C++函数,如: void cPlusplusFunction();和c函数一样,进行下面的定义即可:#ifdef __cplusplusextern “C” void {#endifextern void __stdcall cPlusplusFunction ();#define cPlusplusFunction CPLUSPLUSFUNCTION#ifdef __cplusplus}经过上面的定义后,所有的函数便可以在三种语言中自由调用。
C 、C ++、Fortran 混合编程研究魏 威,魏 冲(郑州铁路职业技术学院,河南郑州450052)摘 要:不同计算机编程语言都有其特有的优势和局限性,将多种语言混合起来进行编程,不但可以充分发挥各自的优势,而且可以弥补各自功能的不足,这样既能充分利用现有程序资源,又能加快应用程序的开发.主要阐述了C 、C ++、Fortran 等3种语言在不同平台下混合编程应注意的问题,以及在混合编程中经常遇到的2个问题.关键词:混合编程;C;C ++;Fortran中图分类号:TP311 文献标识码:A 文章编号:1007-113X (2007)04-0094-05Fortran 语言是所有编程语言中惟一能将复数定义为一种标准数据类型的语言,其优势在于数值计算,但是Fortran 语言在可视化程序设计方面却是非常欠缺的,目前还没有一家厂商推出具有RAD 特性的Fortran 编译集成开发环境.当用Fortran 实现了某一大型科学计算以后,却难以将这种计算转变为数据输入简易、结果显示方便的W indows 可视化应用程序,而采用C 、C ++进行编程却比较容易实现这些功能.因此,在许多情况下,我们应该使用C 、C ++、Fortran 等进行混合编程.在混合语言编程中,主要的问题是函数调用和数据结构的存储.1 W indows 平台的混合编程Fortran 语言没有大小写之分,而W indows 平台下的混合语言编程过程中大小写问题十分突出.考虑到编译器的差异,可以用以下方式进行跨平台编程的函数声明.C 、C ++编译器使用M icr os oft V isual C ++6.0编译集成开发环境,Fortran 编译器使用D igital V isual Fortran 6.0编译集成开发环境.假设一个C 语言函数为void cFuncti on (),那么只需要在它的头文件里面进行如下定义即可. #ifdef _cp lus p lus extern “C ”v oid { #endif extern v oid _stdcall CFuncti on (); #define cFuncti on CF UNCTI O N #ifdef _cp lus p lus } #endif这样就可实现上述函数在Fortran 或C ++程序中的直接调用.假设一个Fortran 函数为S UBROUTI N E FF UNCTI O N (),那么在C ++头文件里可进行如下定义. #ifdef _cp lus p lus extern “C ”v oid { #endif extern v oid _stdcall ffuncti on (); #define ffuncti on FF UNCTI O N #ifdef _cp lus p lus第22卷第4期2007年12月 洛阳大学学报JOURNAL OF LUOY ANG UN I V ERSI TY Vol .22No .4Dec .20073收稿日期:2007-11-01作者简介:魏 威(1960-),女,汉族,河南省郑州市人,工程师,研究方向:计算机技术. } #endif这样,就可以在C ++的程序里面直接调用上述函数.由于C 编译器里面没有定义cp lus p lus 这个环境变量,因此在C 文件里面也可以直接使用这个头文件.如果是一个C ++函数void cPlus p lusFuncti on (),和C 函数一样可定义如下. #ifdef _cp lus p lus extern “C ”v oid { #endif extern v oid _stdcall cPlus p lusFuncti on (); #define cPlus p lusFuncti on CP LUSP LUSF UNCTI O N #ifdef _cp lus p lus } #endif经过上面的定义后,所有的函数便可实现在3种语言间自由调用.在用3三种语言进行混合编程过程中要注意函数的参数、字符串的传递问题.对含有字符串的函数,如函数v oid cCharFuncti on (char 3m sg ),需要定义如下. void cCharFuncti on (char 3m sg,int len )经过上面的定义之后,在Fortran 中只需调用cCharFuncti on (m sg )即可.由于Fortran 程序没有明显的字符串结束标志,如果是2个字符串连在一起,C 程序里就只能得到1个字符串.所以,最好在C 的程序里对这个由Fortran 程序得到的字符串进行处理,因为从len 变量可以得到字符串长度,截取m sg 的前len 个字符作为这个字符串的应有长度.而在Fortran 程序里面,如函数S UBROUTI N E FCHARF UNCTI O N (fchar ),经过相应声明,进行下面的定义即可. #define f CharFuncti on (fchar ),FCHARF UNCTI O N (fchar,strlen (fchar ))这样,在C 、C ++程序里即可直接调用.在3种语言的混合编程里还有一个需要注意的问题就是指针问题.Fortran 里面所有的变量都相当于C 、C ++里面的指针,所以,在C 、C ++程序里函数的参数应一律声明为指针形式(除字符串参数后面的长度外).在混合编程过程中,数据方面存在的差异也必须引起足够的重视,这体现在数组和结构2个方面.在Fortran 语言里,数组和C 、C ++里的数组有些不同,这表现在行列顺序和数组起始值.Fortran 语言不同于C 、C ++的行优先,而使用列优先的方式.假设有一个数组a,m 行n 列,采用行优先时的数据存放格式如下. a 11,a 12,…,a 1n ,a 21,a 22,…,a 2n ,…,a m 1,a m 2,…,a m n而采用列优先的数据存放格式如下. a 11,a 21,…,a m 1,a 12,a 22,…,a m 2,…,a 1n ,a 2n ,…,a m n行优先顺序推广到多维数组,规定为先排最右的下标;列优先顺序推广到多维数组,规定为先排最左的下标.这样,在混合语言编程里调用数据时必须注意行列优先的差别,进行准确地调用.数组的另一个差别是起始下标的不同.Fortran 默认的数组下标是以1开始的,而C 、C ++默认的数组下标却是从0开始的,所以在调用时要注意加1或者减1,以保证调用到正确的数据.Fortran 语言里的结构经过声明后就被分配了空间,在C 、C ++里面也要声明它,采用下面的方式.Fortran 结构声明格式如下. COMMON /COLOR7/C_RE D ,C_GREEN,C_BLUE COMMON /NDDAT/N I D (NASI ZE ),XN (3,NASI ZE )C 、C ++结构声明格式如下. #ifdef _cp lus p lus extern "C"{・59・第4期 魏 威等:C 、C ++、Fortran 混合编程研究 #endif #define col or7COLOR7 #define nddat NDDAT extern struct {fl oat c_red;fl oat c_green;fl oat c_blue;}col or7; extern struct {int nid[NASI ZE ];fl oat xn[NASI ZE ][3];}nddat; #ifdef _cp lus p lus } #endif2 L inux 平台的混合编程L inux 平台的混合语言编程和W indows 平台的混合语言编程基本没有什么区别,主要是在define 上的不同.考虑到编译器的差异,在函数声明上可以用下面的方式进行跨平台编程的函数声明.C 、C ++编译器使用G NU gcc,Fortran 编译器使用pgi Fortran .假设一个C 函数为void cFuncti on (),那么只需要在它的头文件里面进行如下定义即可. #ifdef _cp lus p lus extern “C ”v oid { #endif extern v oid CFuncti on (); #define cFuncti on cfuncti on_ #ifdef _cp lus p lus } #endif这样,在Fortran 或者C ++的程序里面就可以直接进行调用了.需要注意的是,函数名应该不多于31个字符.同样,对于C ++和Fortran 里的函数,函数名在声明的时候也应改成小写加下划线即可.对于数组来说,具体变化和W indows 平台的处理方式是一致的,都是行列优先顺序不同的.而对于字符串来说,则不需要额外的注意,gcc 编译器会处理好这个问题,也就是说并不需要额外的改变.对于数据结构的定义,也要改成小写加下划线的方式.其中,Fortran 的数据结构定义方式如下. COMMON /COLOR7/C_RE D ,C_GREEN,C_BLUE COMMON /NDDAT/N I D (NASI ZE ),XN (3,NASI ZE )C 、C ++的数据结构定义方式如下. #ifdef _cp lus p lus extern "C"{ #endif #define col or7col or7_ #define nddat nddat_ extern struct {fl oat c_red;fl oat c_green;fl oat c_blue;}col or7; extern struct {int nid[NASI ZE ];fl oat xn[NASI ZE ][3];}nddat; #ifdef _cp lus p lus } #endif3 其他平台的混合编程对于Solaris 平台,基本上和L inux 平台完全一致,但是考虑到Solaris 大多运行在Sparc CP U 上,它是采用big endian 的,而W indows 和L inux 运行在I ntel 或AMD 的X86平台上,采用的是little endian,这一点需要特别注意,在读写数据文件时应该给予足够的重视.其他的Unix 平台,如HP Unix 、ULTR I X 、I R I S 等,一般都只有define 上的微小差别,在字符串处理、结构及数组方面基本与L inux 相同.对它们・69・洛阳大学学报 2007来说,考虑更多的应该是中央处理器不同带来的差别.4 混合编程中的字符串处理混合编程中经常会出现需要传递字符串的情况,而字符串的传递是一个较为麻烦的问题.在Fortran 里,字符串是没有结束符的,但是有长度的概念,也就是说,编译器会给每一个字符串一个长度以控制字符串的长度,但是这个长度参数在不同的平台下其位置也是不同的(有的直接跟在字符串后面,有的则跟在函数参数的最后面),对于常见的平台,如W indows 、L inux 、Solaris 、HP Unix 、I R I S,可以用如下方法定义.以C 函数为例,定义如下. void messag (char 3m sg1,int 3where1,char 3m sg2,int 3where2) { p rintf (“……%s should be %d,while %s should be %d \n ”,m sg1,3where1,m sg2,where2); }如果要在Fortran 里调用的话,需要以下定义. #if defined ULT R I X ||SP ARC ||I R I S ||L I N UX ||W I N 32 #if defined ULT R I X ||SP ARC ||I R I S ||L I N UX extern v oid _stdcall messag (char 3,int 3,char 3,int 3,int,int ) #define messag (s1,i1,s2,i2)messag_(s1,i1,s2,i2,strlen (s1),strlen (s2)) #else /3W I N 32Platf or m 3/ extern v oid _stdcall messag (char 3,int,int 3,char 3,int,int 3) #define messag (s1,i1,s2,i2)MESS AGE (s1,strlen (s1),i1,s2,strlen (s2),i2) #endif #else /3O ther Platf or m 3/ extern v oid _stdcall messag (char 3,int 3,char 3,int 3,int,int ) #define messag (s1,i1,s2,i2)messag (s1,i1,s2,i2,strlen (s1),strlen (s2)) #endif如果要用在C ++中,需要如下定义. #ifdef _cp lus p lus extern “C ”{ #endif /3your extern code 3/ #ifdef _cp lus p lus } #endifFortran 里便可以直接调用如下. CALL MESS AG (char1,i1,char2,i2)同样,在Fortran 里写的字符串处理函数使用以上的define 和extern 后,也可以在C 里直接调用.5 混合编程中的文件读写处理文件读写也是混合编程中一个非常重要的问题,通常的问题发生于不同平台下的混合编程或者不同Fortran 编译器间的编译.在Fortran 中,文件的写入是由write 语句完成的,而每一个write 语句可一次性写入多个数据构成一个数据块,而每一个无格式数据块都由下面3部分组成:(1)数据块的开始标志,记录所有数据所占的字节数;(2)组成该数据块的各数据内容.整型数和浮点数均占4个字节,低字节在前,高字节在后.各数据间不空格;(3)每个数据块的结束标志,也为该数据块的字节数,而不是以回车换行符作为结束标志.各记录之间也没有分隔符.另外,由于编程语言的差异,不同的编译器的存储格式也存在差异,如V isual Fortran 与D igital Fortran 在存储数据块中还存在着差别.在一个write 语句中,V isual Fortran 存储数据块的开始标志与结束标志是・79・第4期 魏 威等:C 、C ++、Fortran 混合编程研究 用一个字节表示,而在D igital Fortran 是用一个整形数,即4个字节来表示.也就是说,V isual Fortran 一个数据块最多可以存储128个字节,如果一个write 语句要求写入的数据量大于128字节时,则按循环形式存入.所以,D igital Fortran 在读取时就应该把它转化为相应的D igital Fortran 存储形式.6 结束语混合编程的优势在于它允许调用用另一种语言编写的现有程序代码、使用在特定语言环境下难以实现的算法和获得处理速度方面的优势.在混合编程中的关键问题是协调2种或多种语言间所的调用约定、命名约定及参数传递方式,并使它们在数据结构、数据类型上保持一致.参考文献:[1]孙 鑫,余安萍.V isual C ++深入详解[M ].北京:电子工业出版社,2006.[2]埃克尔.C ++编程思想[M ].北京:机械工业出版社,2002.[3]任 哲.MFC W indows 应用程序设计[M ].北京:清华大学出版社,2004.[4]周振红.Fortran 90/95高级程序设计[M ].郑州:黄河水利出版社,2006.[5]周振红.I ntel V isual Fortran 应用程序开发[M ].郑州:黄河水利出版社,2006.[6]浩强工作组.Fortran 经典程序设计[M ].大连:大连理工大学出版社,2004.[7]霍 顿.V isual C ++2005入门经典[M ].北京:清华大学出版社,2007.[8]Stanley B,L i ppman .Essential C ++[M ].武汉:华中科技大学出版社,2001.Study on M i xed 2l anguage Co m p ili n g Usi n g C,C ++and FortranW E IW ei,W E I Chong(Zhengzhou Rail w ay Vocati onal and Technical College,Zhengzhou 450052,China )ABSTRACT:There are different peculiar advantage and li m itati on in each kind of p r ogra mm ing language .The m ixing p r ogra mm ing can make the best of merits of different languages and avoid the deficiencies of the m.This paper mainly discuss the questi on of m ixing p r ogra mm ing using the C,C ++and Fortran .KEY WORDS:m ixing p r ogra mm ing;C;C ++;Fortran(责任编辑:王 晓)・89・洛阳大学学报 2007。
第 29 卷 第 9 期 计算机工程与设计Computer Engi neering and Design2008 年 5 月 May 2008Vol . 2 9No . 9Linux 环境中 Fortran 与 C 混合编程方法研究亓雪冬 1, 仝兆岐 1, 何潮观 2(1. 中国石油大学 地球资源与信息学院,山东 东营 257062;2. 胜利油田物探研究院,山东 东营 257022)摘 要:在 Linux 系统中存在大量优秀的 Fortran 和 C 的源代码和程序库,为有效的利用这些软件资源,发挥不同语言各自的优势,探讨了 4 种混合编程方法— — 基于外部数据混编、基于 CORBA 混编、基于 f2c 混编、基于 cfortran 混编,并论述了各方法 的基本原理、实现步骤,比较了各方法的优缺点和适用范围。
关键词:混合编程; 编程语言; 源码转换工具; 组件; 通用对象请求代理 中图法分类号:TP311.52文献标识码:A文章编号:1000-7024 (2008) 09-2378-03Study on mixed Fortran and C programming in LinuxQI Xue-dong 1, TONG Zhao-qi 1, HE Chao-guan 2(1. College of Geo-resources and Information, China University of Petroleum, Dongying 257062, China;2. Geophysical Prospecting Research Institute of Shengli Oilfield, Dongying 257022, China ) Abstract :There are many good Fortran, C source code and libraries in Linux. In order to reuse these software resources an d make use of the two languages together effectively, four methods of mixed Fortran and C language programming in Linux system are discussedwhich are external data, CORBA, f2c and cfortran. Then the principle, the processes, the merit and flaw of these methods are analy sed and contrasted.Key words :mixed-pro grammin g; programming lan guage; source code converter; component; CORBA的 Fortran PowerStation 和 VB, VC, Delphi, C++ Builder 之间的混合编程研究。
(1)选择右视面作为绘制草图的平面;(2)根据蜗壳圆弧面截面几何尺寸,绘制可容纳其截面圆形;(3)利用拉伸凸台/基体命令,根据蜗壳的厚度把草图拉伸;(4)选择前视面作为绘制草图的平面;(5)根据蜗壳出料截面的几何尺寸,绘制草图;(6)利用旋转凸台/基体命令,把草图旋转360°生成出料口。
3.2.2外壳造型设计外壳造型由外端面扫描切除生成,主要步骤如下:(1)选择前视面作为绘制草图的平面。
(2)根据蜗壳木模轮廓的几何尺寸,绘制扫描引导线。
(3)选择右视面作为绘制草图的平面。
(4)根据蜗壳截面的几何尺寸,绘制外端面。
(5)利用切除-扫描命令,生成外壳。
3.2.3内腔造型设计(1)Ⅰ-Ⅶ端面内腔造型由内端面扫描切除生成,主要步骤:①选择前视面作为绘制草图的平面;②根据蜗壳木模轮廓的几何尺寸,绘制扫描引导线;③选择右视面作为绘制草图的平面;④根据蜗壳木模截面的几何尺寸,绘制内端面;⑤利用切除-扫描命令,生成Ⅰ-Ⅶ端面内腔。
(2)Ⅶ-Ⅹ端面内腔造型由内端面放样切除生成主要步骤:①选择前视面作为绘制草图的平面;②根据蜗壳木模轮廓的几何尺寸,绘制扫描引导线;③选择Ⅶ端面作为绘制草图的平面;④根据蜗壳木模Ⅶ端面截面的几何尺寸,绘制内端面;⑤选择上视面作为绘制草图的平面;⑥根据蜗壳木模Ⅷ端面截面的几何尺寸,绘制内端面;⑦利用切除-放样命令,生成Ⅶ-Ⅷ端面内腔;⑧同理,利用切除-放样命令可生成Ⅷ-Ⅹ端面内腔。
其模型,如图4所示。
图4内腔模型4结语Solidworks软件为渣浆泵的三维建模带来了极大的方便,同时,可以把所建立的实体转化为iges等格式,可直接用于有限元强度分析,为进一步展开对渣浆泵的研究工作提供了可靠保证。
参考文献1关醒凡.现代泵技术手册[M].北京:宇航出版社,19952刘长征译.精通Solidworks2003[M].北京:清华大学出版社,2004VC和FORTRAN混合编程及其在微机电系统中的应用蔡占军翁海珊俞必强(北京科技大学机械工程学院,北京100083)VCandFORTRANmixedlanguageprogrammingandItsapplicationtoMEMSCAIZhan-jun,WENGHai-shan,YUBi-qiang(MechanicalEngineeringSchool,UniversityofScienceandTechnologyBeijing,Beijing100083,China)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "!!!!!!!!!!!!!!!"! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "【摘要】对VC和FORTRAN混合编程中的函数传递问题,进行了深入的研究,研究出了一种从VC程序到FORTRAN程序的函数传递技术。
Fortran与Visual Basic的混合编程
王永杰;苗丽
【期刊名称】《河南科学》
【年(卷),期】2004(22)1
【摘要】利用Fortran强大的数值计算能力和Visual Basic极好的界面开发功能,通过动态链接库及两种语言之间调用约定的协调,包括标识符命名、参数传递方式等,成功地实现了Fortran与Visual Basic的混合编程.
【总页数】4页(P124-127)
【作者】王永杰;苗丽
【作者单位】郑州大学环境与水利学院,河南,郑州,450002;郑州大学环境与水利学院,河南,郑州,450002
【正文语种】中文
【中图分类】TP311.11
【相关文献】
1.Fortran与Visual Basic的混合编程 [J], 谢敏;陈伟;陈守伦
2.Fortran与Visual C++混合编程 [J], 陈伟;谢敏
3.Visual Fortran与Visual Basic混合编程 [J], 封基良;林炳星
4.Visual C++与Compaq Visual Fortran混合编程研究 [J], 马清华;王明海
paq Visual Fortran与Matlab混合编程实现小波域地震信号多尺度分析[J], 徐天吉;程冰洁
因版权原因,仅展示原文概要,查看原文内容请购买。
VC 与Fortran 混合语言编程 肖晓玲,卢正鼎 (华中理工大学计算机科学与技术学院,湖北武汉430074) 张 翔 (江汉石油学院地球物理勘探系,湖北荆州434102)[摘要]V C 与Fortran 混合语言编程时,按调用方式与实现的不同,调用约定主要采用C 与STDCALL 属性的调用约定。
命名约定一般使符号名表现为纯大写的名称、纯小写的名称或混合书写形式名称。
不同语言之间参数数据的传递主要通过:①调用变量参数列表;②数据、过程模块结构;③将变量声明为公用、外部和全局类型这3种方式来实现。
采用V C 与Fortran 混合语言编程设计了大地电磁测深一维交互式解释系统。
[关键词]程序设计方法;Fortran ;V C 混合语言[中图分类号]T P 311111[文献标识码]A [文章编号]10009752(2000)02007104混合语言编程是采用2种或2种以上的编程语言组合编程,彼此相互调用,进行参数传递,共享数据结构及数据信息,从而形成一种程序实体的过程,也称为程序接口。
在软件编制和开发工作中,如果开发的软件规模较小,具有较简单的科学计算或数据处理,那么,只选择一种高级语言或者数据库语言来编程是可行的;然而,对于要开发功能很强、规模很大的大型应用软件,并且软件中既具有大量数据处理,又具有大量科学计算,甚至具有较强的实时功能的系统来说,采用单一的高级语言很难完成预期的计划和功能,而且在编程中也遇到很大的麻烦。
因为各种语言都有其长处,也有其局限性,一种语言鞭长莫及之处,正是另一种语言的驾轻就熟之区。
集各语言之精华,扬长避短,就可以大大提高系统的效率、功能和灵活性。
Fortran 语言是流行较广的适用于科学计算的高级语言,其标准化程度高,便于程序交换,较易优化,拥有高精度的数据结构与运算结构。
而V isual C ++与硬件底层打交道具有强大优势,便于图形系统的开发,已成为W indow s 系统平台上最强大的应用程序开发系统之一。
FORTRAN和VISUAL C++的混合编程
陈中
【期刊名称】《程序员》
【年(卷),期】2001(000)004
【摘要】简述了FORTRAN语言和VV语言混合编程的重要性。
对混合编程中涉及到的调用约定,命名约定,数据交换和访问,数据共享,数组处理、用户自定义类型处理等方面。
结合编程应用,分别加以阐述和讨论。
最后给出了一个简单的混合编程的例子。
【总页数】3页(P76-78)
【作者】陈中
【作者单位】无
【正文语种】中文
【中图分类】TP311
【相关文献】
1.Visual C++与Fortran混合编程及Matcom绘图在空调负荷计算软件中的应用[J], 顾小松;王汉青
2.Visual Prolog与Visual C++混合编程技术研究 [J], 徐彤;张莉;李松
3.Fortran与Visual C++混合编程 [J], 陈伟;谢敏
4.Visual Fortran与Visual Basic混合编程 [J], 封基良;林炳星
5.Visual C++与Compaq Visual Fortran混合编程研究 [J], 马清华;王明海
因版权原因,仅展示原文概要,查看原文内容请购买。