datasheet

如何将多个C语言模块组合成一个程序

2016-01-19 17:40:52来源: eefocus 关键字:C语言模块  静态函数  外部函数
C语言的基本组成单元是函数,各个函数之间可以相互引用。在学到静态函数有时又将为内部函数和外部函数,即分别用static和extern说明的函数时,有不少人感到很迷惑:“外部”和“内部”到底是怎么一回事呢?
    一般来说,我们编制的C语言源程序都是放在一个扩展名为.C的文件中,这对一个较简单的程序是合适的,但对于大型项目就不合适了,其一,大项目往往由多人合作完成,大家都来操作同一个文件极易出错;其二,大文件的编译、调试都极为复杂;其三,如果两个程序中都要用到同一个自定义的函数,此函数须从一文件移动到另一文件中,这种移动容易出错。为了解决这一矛盾,一个大的程序往往被分成几个部分,存放在不同的DOS文件各。各个部分可以分开编辑、编译,最后再把这几部分链接成一个完整的程序。
    把一程序分成几部分是有一定规则的。一个函数就不能分开在两个文件中,也不能在两个文件中都对其定义一次,因此每个文件都是由完整的对函数式变量的定义式说明组成的。对于某一文件中的函数,它可以直接引用本文件中所定义的函数和外部变量。如果要想引用别的文件中定义的函数或变量,则应在引用之前用 extern,对此变量或函数进行说明。如果一个函数或外部变量在定义时前面加有static说明,那么就只有本文件内的函数能够使用它。习惯上,在每个文件的最前面放上不在此文件中的函数及变量的说明,由于对函数和变量的说明可以多次重复进行,往往建立一个头文件,在其中放入所有外部变量和外部函数的说明并在每个说明前面加上extern,然后每个源文件的第一行都用include包含这个头文件。
    对于每一个完整的源文件,都应该能够单独通过编译,以便迅速改正其中的编辑错误。Turbo c中,如果你选择了编译命令,它就编译当前编辑窗口中的文件。对于被调用函数,可以编出简单的调用函数对其可靠性进行测试,看它能不能完成预期的功能。
    在每一个文件都编好并且都通过了编译之后,你需要建立一个项目文件,把所有的文件组合在一起进行链接。如果你使用的是Borland c++ 2.0以上的版本或MS C的高版本的话,可以看到其主菜单上有一个Project(项目)菜单,其中一项为建立Project文件,选此命令,输入项目文件名后即可直接从列出的目录中选定组成项目的文件。但在Turbo C 2.0中,这个过程要复杂一些,下面我们来看一个例子。
    假设有一个程序,其中包含有main(),fun1(),fun2()三个函数及一个公用的外部变量int a:我们把main()及a的定义放在文件F1.C中,而将fun1(),及fun2()的定义放在文件F2.C中,即
    F1.C
    extern void fun1(int x);
    extern void fun2(char c);
    int a;
    main()
    { fun1(5);
    } fun2('A')
    F2.C
    extern int a;
    void fun1(int x);
    {…
    a=a+x
   
    }
    void fun2(char c)
    {…
    }
    先应把F1.C和F2.C分别输入计算机并编译后存盘。然后选File菜单下NEW命令,建立一个新的文件,即项目文件,不妨取名为MY.PRJ,其中只有两行:
    F1.C
    F2.C
    必要时,还应在文件名前加上盘符和路径,存盘。然后打开Project菜单,选Project name.输入名字MY.PRT。这时Turbo.C就知道当前要链接,运行的是一个由两个文件组的程序。选择RUN菜单下的RUN命令即可对两个文件进行编译、链接和运行的一体化操作。F4,F7,F8及断点设置等功能也可用于程序的调试中。

关键字:C语言模块  静态函数  外部函数

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_24620.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:单片机驱动继电器方式
下一篇:单片机学习之PROTUES

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

网友正在学习IC视频

推荐阅读
全部
C语言模块
静态函数
外部函数

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved