C语言的程序、文件、函数之间的关系

C语言的程序、文件、函数之间的关系,第1张

程序是指你闷穗为了完成你的薯罩渗功能而编写的项目代码。

文件是信息的保存方式,包括程序文件、库文件、数据文件数脊等。广义上说,设备也包含在文件的定义里面。

由于程序规模可能非常大,编程时往往将将代码划分成若干模块,每一模块对应一个子功能,这样也方便实现程序代码的复用。这一一个模块,在形式上就体现为函数。——如果规模再大一些,可能还需要将一些相关的类封闭成类库,以方便调用,进一步提高程序的复用性。

这些只是经验,谈不上理论,也没必要去钻牛角尖。程序多写一些,你自然就明白了。

程序是由多个文件链接而成,在linux下是 .o .a .so 文件链接而成。在windows下是由 .o .dll 等链接而成。 函数包含在文件里,当斗敏猛一个文件要用到另一个文件中的函数时,空桥就需要在该文件中通过#include 来包含另一个文件对应的头文件(.h文件)如:#include "a.h",或者通过extern 的方式如:extern void a()但是,无论采用哪种方式,都必须在链接过程中链接对应的其他文件。编译器会通过对每个文件中的符号(非static的函数和全局变量)的检查来判断哪个符号在哪个文件里,然后按照相拿模应的编译参数来链接文件。

Matlab语言编写的可以在Matlab环境中运行的程序称为 M 文件。M 文件用扩展名.m结尾,可在命令行中执行,也可被其它程序调用,我们可以使用任何文本编辑器编辑M文件。

M文件分为两种:命令文件和搭正陵函数文件,它们有各自的特点。

1.5.1 命令文件

命令文件没有输入参数也没有输出参数,只是一些Matlab命令和函数的组合。命令文件可以 *** 作工作空间的变量,也可以生成新的变量,但是当命令文件执行结束后新变量将保存在工作空间中,不会被自动清除。

例2-20:编写命令文件test_com.m,用于求解小于2000且为2的整数次幂的正整数。

解:

%test_com.m

F(1)=2

k=1

while F(k)<1000

F(k+1)= 2*F(k)

k=k+1

end

F,k

为了能够在命令窗口执行test_com命令,可以建立一个\MySample子目录,然后用命令窗口的【File】|【Set Path】菜单将该目录加入的Matlab的搜索目录中。这样就可以直接在Matlab命令窗口键入test_com执行这个命令,其运行结果为:

F = Columns 1 through 6

2 4 8 16 32 64

Columns 7 through 10

128 256 5121024

k =10

1.5.2 函数文件

函数接收输入参数,返回输出参数。函数文件与程序知戚文件类似也是以 逗.m地 为扩展名的文本文件,而程序文件与函数文件的主要区别在于,函数允许通过数值进行参数传递,而且函数使用局部变量而不是全局变量 *** 作。另外函数文件的第一行必须包括 逗function地 这个关键字。函数文件的文件名必须和函数定义的函数名称相同。

MATLAB的函数M文件通常由以下几个部分组成:

1 函数定义行

函数M文件的第一行用关键字逗function地把M文件定义为一个函数,并指定它的名字,并且与文件名必须相同,同时定义了函数的输入和输入参数。输入参数的定义用小括号(),如果有多个输入参数则用逗号分隔;输出参数的定义用中括号[],如果有多个输出参数则用逗号分隔。

2 H1行

所谓H1行指帮助文本的第一行,它紧跟在定义行之后并以逗%地符号开头,用于概括说明函数名和函数的功能。在命令窗口用 lookfor 命令时将显示所清迟寻求函数的H1行。

3 函数帮助文本

帮助文本指位于H1行之后函数体之前的说明文本,它同样以逗%地符号开头,一般用来比较详细地介绍函数的功能和用法。在命令窗口用help命令时将显示函数的H1行和所有帮助文本。

4 函数体

是函数的主体部分,包括进行运行和赋值 *** 作的所有MATLAB程序代码,其中可以有流程控制、输入输出、计算、赋值、注释以及函数调用等 *** 作。

5 注释

除了函数开始独立的帮助文本外,还可以在函数体中添加对语句的注释。注释必须以逗%地符号开头,MATLAB在编译执行M文件时把每一行中逗%地后面的全部内容作为注释不进行编译。

1.5.3 子函数

一个 M 文件中可以定义多个函数,其中第一个定义的函数称为主函数,主函数名必须与M文件名相同,其它函数称为子函数。子函数只能被定义它的文件中的函数调用,其它函数和文件不能调用。

1.5.4 局部函数

把一些文件放在private目录下,那么这些文件中定义的函数就是局部函数。局部函数只能被其父母目录中的函数或文件调用,其它函数和文件无权调用。

1.5.5 M文件的执行

当Matlab遇到一个新的名称(命令、函数、变量)时,按如下次序查找这个名称:

(1) 当前的工作空间;

(2) 子函数名称

(3) 局部函数名称;

(4) set path指定的路径。

要想使自己编写的函数或命令能够在命令窗口自由的使用,一个比较好的处理方法是建立一个目录,并把这个目录加到Set Path指定的目录中,将自己编写的 M 文件都存放到这个目录中。

例1-21:编写函数求。

解:function r=AddJc(n)

%AddJc.m 函数AddJc(n)求1到n的阶乘的和

% n为输入参数,Jc为子函数

r=0k=1

while k<=n

r=r+Jc(k)

k=k+1

end

%Jc(m)求解m的阶乘,是文件内部函数(子函数)

function s=Jc(m)

s=1k=1

while k<=m

s=s*k

k=k+1

end

将AddJc.m保存到工作目录中,在命令窗口可以直接使用AddJc函数,但是不能使用子函数Jc。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12200256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存