00:00
哪了,是不是都写在一个文件中,点C这个文件中了啊,我们其实可以把把程序。分割成多个什么呀。多个文件中去写,比如说这个是专门去实现某个功能,那个是实现某个功能,然后再怎么着整个程序一调用啊,这样就把多个文件联合在一起去这个编程,那那是一个什么样的结构呢?那我们在这里面去创建一下啊,把这个给它注销掉啊。时期,那我再把内容说一下,可能没听懂啊,是比如说我们在编程的时候,现在是不是都写在一个文件中啊,啊在以后工作中可能怎么的,可能是分模块开发,是不是你完成的功能,他完成的功能那你是写在你的文件中,他把他的代码写在他的文件中是不是,但是你俩代码最后可以怎么样放在一起,是不是一起去使用,是不是就像盖房子一样,是不是这里面有十个人,十个工人一起盖房子,他们协同开发,是不是你摆一块砖,我摆一块砖,最后这个怎么样,因为比如这这样说,因这里面有四面墙,是不是分给四个工人去摆房,摆房子是吧,楼啊是吧,你说你这边我楼我这边,然后最后大家是不是留出那种砖的这个插口啊,是不是看过我盖个房子这个事吧,是不是我这个这个插口和你这口最后能完美的拼拼接在一起,是不是,那这样情况就可以盖好了这个四面墙,是不是,那就是这样过程,我们可以把这个什么呀,把这个活分配给不同的人去干,然后最后整理在一起,可以通过主函数去怎么去让大家去协同起来啊,作为开发这个例子啊,那那么通过程序来给大家演示一下啊。
01:23
哎,说的有点多了。啊,二零。也是叫主文件。补文件。这是第一个,然后再来第二个右击。嗯,二一是。被调文件。北调了,北调。五然后调文件,然后是。
02:03
掉又掉错了,哎呀,这掉。被调文件点C,然后再写一个什么,再写一个叫。来这注意一下啊,这里面选选哪个啊,选择头文件啊,这里面是叫22是要。头文件啊,这里面如果不点H,它自动默认情况下也给你点H啊,这和之前不一样是不是?那我现在是不是有仨文件了,我需要多个文件联合编程啊,说一下这个内容叫多个文件联合编程,这是咱们下面讲课内容啊是不是?那这里面主文件写什么?还是写之前内容吧。函数是不是写在这里面,调哪里面内容,是不是调这个被调文件里面内容啊,啊被调文件里面内容如果写情况况,比如说这里面写个函数啊是怎么写啊是。啊,写个int类型的一个具体的值啊操作,比如说搜什么还是加B啊,那无聊了,无聊。B加A大小比较大小也行,那然后这个名叫啥呢大小。
03:04
Max啊,就说好,那这个你这个一下提醒到了我了,让我找到人生新方向了,是不是a in类型的B,我在这行数里面做操作,什么是rei,然后是。A大于B,然后是问号A,然后是冒号B,啥意思?最大值,这样最大值是给谁啊,给这个返回过去是不是我在这什么文件中调,在主文件中调,我调什么名啊,看一下调什么名,Max是不是,那我看直接掉下可不可以调过来啊,是max来看一下。Max系系统有的吧,系统有没有这个没有有还几这怎么感觉是有呢,我换一个名,换个名是这指是没有的是不是不是这是嗯是02020223是不是MAX023,看一下这里面调一下能不能调过来啊。
04:01
是多个文件联合编程了,是MAX0。223哎,发现这里面怎么样调,调能调过来吗?调来看一下啊,能否具体值,我记得是能调过来,因为这个C,因为C语言中所有的这个函数写的都是一个全局函数,应该是能调换过来的啊,然后我们写一下这个D是十逗号20哪个大呀。我们用一个值接入它是不是VA6去接入它等于,然后这里面去打一下PTF。感冒D,斜杠N,然后是逗号一个。Y了,我们看一下这个程序能否运行啊,调试开始进行,现在没有重文件任何关系啊。是不是打印出20啊可以的吧,为什么是可以的呢?这里面先跟大家说一下啊,这个是在第十天跟大家去讲这个内容是。在呃是文件中啊,注意一下,这是文件中,就整个咱们这里面所有的文件中啊,函数都是。
05:05
全局呃就是呃就是这样说,文件中函数都是全局函数啊这样说。全局函数就是能被整个文件中的所有文件去使用,知道吧,你看我知道建立刚才刚才之前写自由声明之前写的什么,写了个abd是不是,我在这里面写的是什么?写的是写的是ad,是不是我为了不允许冲突情况下,我给它改一个名,是不是改成零一了,可以看到了吧?啊所以说这里面所有函数全是全局用的,比如说我这里面用ADB,在第20个里面用AB,用的是哪个AB啊。是不是四则声明里面这个APP啊,Ad也能找这东西啊,比如说是十逗号20能不能找到,能找到,全部能找到,所以说我在起名的时候,你注意一下,这里面没有之之前起的名没有任何重复的吧,嗯,这个大家注意的问题啊,这里面是多个文件,哪个文件中呢?是不是在这个文件中啊,但是一般我们写的时候,这样写是怎么样,是让我们这个程序怎么样看起来很松散是不是,所以说我们需要一个头文件,这个头文件相当于什么一样菜单一样,知道吧,告诉我们一个目录的一个结构是不是,然后对应到哪一个能找到哪,哪一个也能找到哪,是不是这样的一个流程啊,啊,你看啊,这里面比如说我这个是在主文件中。
06:18
右击选择什么。转到定义是不是有这个,是不是转到这个,诶怎么转不过来呢?啊没有定义,有定义啊,这不20里面就定义吗?声明怎么还转不过来呢?那我咱们把头文件写完之后看有没有啊,那我们这里面头文件写应该怎么去写呢?这里面可以做什么,可以做这些函数的,我先写下注释啊是。投文件可以做什么用啊,头文件啊,头文件作用作用。第一就是。对面的。函数变量。
07:02
变量诶。变量的声明,声明这里面注意一下,这是俩俩什么俩俩东西吧,是不是一个是函数,一个是什么,一个是变量,是不是都可以在这里面进行声明,那之前在之前咱们没讲过什么,没讲过这个变量声明,变量声明其实和这个函数声明是一样的EST,然后比如说是int类型的A。EST啊。然后是int类型的A。A,因为就有很多了,比如说叫什么叫AAA是不是,这是一个什么,这是一个函数的声明嘛,是不是啊,不是变量声明,但是这块咱们也不讲,只是跟告诉你还有这种格式,咱们到第十天的时候讲内存管理的时候再说这个问题啊,函数变量声明,然后是什么是。第一点,然后是第二点做操作就是。系统库的调用啊,我们之前这里面所有东西调用全在全在哪调用呢?是不是全在主环中调用的,那我们以后可以怎么可以在图文件中调用,然后再怎么样这个点C文件中调用什么调用我的这个图文件,比如说这样啊,比如说井号。
08:16
I。专号叫谁的,自己的自己的我叫什么名叫头文件,注意下这里面可不可以写中文啊。同文念等H是不是我这个文件呢?22同文念点H,然后把这个什么,把这个所有的这些东西放在哪啊,放在这里面是不是,那这样我们程序看起来是不是就怎么的整洁很多了吧?啊然后一般情况下还有一个条件,还有一个注意的就是怎么的,一般情况比如说这个叫什么叫主文件点C是不是这个叫什么呀,这个叫主文件点H知道吧,名字要对应上,那比如说我们看一下之前的这个这个什么开发中的这个实际开发中的例子啊,这是C语言中的,那我们找一下啊。
09:00
啊。比如说这这叫什么,这叫是呃。A dialogue。是the Di,不是delegate吧,是不是代理吧,是不是啊,这里面是APP是G,你看这俩名字是不是对应上了,是不是,然后一个是点文件,一个是点CP文件,这个是hello hello word since,这个是什么?Hello word,它俩名字一样的,只是这个根据什么区分呢?块名来区分吧,那所以这里面写的时候,以后大家需要注意这个问题啊。这是这个CPP中的,其实C源中也是这样的啊,也是这样的格式啊,那这里面做的操作是第二种是什么?是系统库的调用,然后是。还有啥操作吗?我看一下这个讲义里面有没有说啊。啊。没说了,没说,估计也就是这几种了吧,是不是啊,那比如说我要调什么,我要调这个有个被调函被调啊,有个被调文件中的这个函数,是不是我可以在声明啊,可以在这个空间里面进行声明,是不是,比如这样写啊,是 est1ten,然后是什么是。
10:09
什么类型了,类型的max max02。0223,然后括号括起来,Int类型的A逗号int类型的。B,那这样情况就等于就是生命完成了吧?那其实大家都知道,我们如果经过预处理,大家还能想起预处理吗?嗯,预处理的作用是什么?头文键展开,就相当于怎么把这句话CTRL加a ctrl加C,然后怎么的。啊,这还有一句话,咱们忘拿过去了是不是啊,这个先不先咱咱先不说是不是整个内容是不是相当于粘贴过来一样了,就是把这东西给你加完了是不是,这个是不是就相当于咱们程序中的一个目录一样存在啊,那这样情况,如果你分开文件看的情况是不是更舒服一点啊,这个是头文件,相当于目录一样,那我们把这个怎么样,再去传TRL下这一下啊把这个怎么样这句话。
11:00
啊,这话先不用拿了,是不是,那现在这个目录结构你能看懂了吧,这是主文件里面一个什么,一个主函数是不是调用了一个头文件,哪个头文件呢?这文件是不是这通过键做的操作什么呀,声明啊,这不叫定义啊,声明了一个什么呀,声明了一个。函数这里面你在选择的时候是不是能选择过去了吧,我再你演示一遍啊,右击选择转到定义是不是有了吧,我在完中试一下啊。化一下,然后再试一下,右击转到定义是不是有了吧,转到声明,右击转到声明转到一些文件中了吧,那这样情况是不是这三个文件怎么的联合在一起了吧?啊,那你可以怎么样多就可以实现多文件编程了,因为我们这个VS,呃,不是因为我们这个是VS,因为我们这个VS里面它会自动给你怎么去执行这程序吧啊。那如果我们用什么,我们用这个是CMD,它会怎么,它会这里面你要想执行多个文件,你需要怎么办呢?GCC啊,然后是杠生成的可执行程序,是不是生成可执行程序,那看一下路径是哪啊。
12:08
在里面啊,这个里面等一下啊,比如别着急是这零七,然后是这个里面有哪几个文件,是不是这这仨文件呢?我先拖拽过来一个文件,然后这里面是叫主文件,点exe可以吧,那然后后面接着什么接着。杠C的文件吧,那把那几个杠C的文件都怎么都拖拽过来啊,这是第一个,然后是空格第二个啊,你别嫌多啊,你应该知道啥意思吧,前面是路径是不是后面是文件,那这个怎么就是多个文件是不是联合编程了吧啊你回车。啊,诶。没问题吧?没有的,这里面有个警告啊,这警告一会咱们说这个问题啊。那我看下有没有这个程序啊,是着年的E出现了吧,这警告咱先忽略掉啊,是program once,一会给大家解释这个什么东西啊,这里面是不是一个可执行程序啊,那我们可以运行一下这个程序,怎么运行呢?
13:04
拖拽过来,然后运行一下,是不是打印出20啊,是不是这样,这就是一个多文件联合编程,那如果在Linux里面,就像我刚才演示的一样,这个操作过程啊,班长记下笔记,那什么样的格式呢?是这样的一个格式啊。首先如果你用G编程的情况下是GCC,然后是杠O-O然后是可执行程序啊,这就是你知道啥意思吧,然后后面是什么,后面加的是呃文件。1.c,然后是文,注意一下咱们这里面所有都是点C文件才能编译过去啊啊文件2.c,然后以及是。头文头文件。点H,那有多个文件情况下,是不是你依次往上写就行了,然后执行完成之后按个啪按回车是不是就可以了,这是什么?这是这个通过GC编译的一个过程,如果是VS里面它怎么样?
14:04
它是不是自动就能给你执行过来啊,啊这个你就不用担心了,这是我们这个多个文件联合编程,那同样刚才也出现一个问题,什么问题啊,就是在我们头文件里面多有不是多一句话是有一句话叫什么啊叫program once。这话什么意思啊?这是叫程序项目程序啊程,然后是一次是那给下来什么,记住班。叫头文件只包含一次,为什么这里面需要做一个这样操作呢?如果头文件要重复包含的情况下,可能会引起程序的错误,是不是,那我这里面来模拟一下这个错误啊,一般情况下也不会出现啊,看一下咱们多多来点啊。莱是不是这里面导入什么,导入这个是。这句话就是头文件你多包含两次,它就它就出现一个问题,重包含了是不是啊嗯。
15:04
啊,就是他自己里面包含自己,自己里面包含自己,就跟递归一样,知道吧,嗯,啊这样这个包含这个了,这也包含这个了,然后他怎么样,他在自己里面包含个自己是不是。哎,自己包含自己报错呀。啊,本包含本身本身就报错的情况下,那我看一下现在会不会出现错误,我把那个program one删了,嗯,调试开始执行。呀哈,这个这个错误很难发现啊,不是不是很难发现,是很难模拟出来啊。嗯,我看一下怎么能模拟出来,嗯,那好,那我再这样这这样啊,你看一下这里面再包含什么文件啊,是井号in includelu,然后是。嗯。20叫。不是不是不是。20啊。补文件。
16:01
点C啊。看一下会不会出现这个问题啊,调试开始执行。我错了。不对呀,这个错误跟这个错误不一样啊,想法错误多有多困难,因为这个VS里面这个我这个版本太高了,他这个有的时候它你包含它,它也不算你错,你知道吗?对,有的时候优化掉了,那咱们把这俩问题说说一下吧,就是你再加上什么,再加上这个是井号。Program,然后是on CE once情况下,就是即使你出现了什么重复包含,它也怎么样,它也就包含一次,不会给你再怎么的同步包含,是不是,但是因为我这版本高的情况下是写什么井号program once,那如果版本低的情下写哪句话呢?写这三句话,那看一下,这三句话看一下,给大家看一下,首先是嗯,是井号if n范,然后这里面是一个名字,然后是然后是是不是。
17:04
啊,不是if啊,N的if,这就这三句话什么意思呢?如果没有包含叫这个名字的文件,那么我就创建一个叫这个名字文件,然后去把它包含进来,是不是啊,如果这里面已经创建完了,那下次再进来之后是怎么样,这里面是不是就有了啊,就不会包含了,其实和program ones是什么是一样的东西是不是,但是如果你版本低的情况下,怎么的不支持program one,你就怎么的手写这三句话,那咱们写一下啊,在空间中写一下这句话,这三句话啊。咱这错误还不是咱们想要的错误,是不是多尴尬?啊好,咱们把这三句话写一下啊,类似于这个program ones这一句话是怎么写呢?是井号if nb n半后面加什么,你看这格式自动就出来了,是不是删掉手来手动来1N底范情况下,一般情况下都是属于一些大写的东西,比如说我给你找一些找一些之前程序啊,你看这个程序情况下,版本可能低一点,他要怎么写啊。
18:05
第二,解决。打开他图文件啊,看了吧,井号一分饭,然后这里面什么appleg是不是,你看下这个名叫什么APP delegate是不是,然后这个叫什么hello word since是不是,Hello since是不是,你看它这个规则什么规则,你叫啥名是不是叫啥名,而且都是怎么样大写的,前面加俩杠,后面加俩杠是不是,然后中间如果是单词的情况也怎么的也加一个杠是不是啊,这是它的命名规则,知道吧,你也不用记,但是你这个东西千万就是比如说你跟同事一起开发的时候,千万别叫一个名,行剩下怎么都行是不是,你随便写写歌词都行,但是你不能跟别人一样的是不是,那但你写歌词的时候一定要注意。上下两句一定要怎么着,一定要是一样的才可以啊,比如说这里面咱们叫什么叫头he,然后文件叫。是杠杠。
19:03
前面加杠杠是不是这个通文件嘛,是吧,是一般情况你可以这样上写的是投入文件,然后写个H啊也行啊,一般有人喜欢加H,有人喜欢不加H啊,这第一句话,还有第二句话是井号。啊,F。底范底范时候怎么着,再把这句话复制一遍就行,是不是,那你可以自己写一下,就是怎么着,就是如果上面那句话没定义,我就定一下,然后这里面恩底范恩底范作用是什么?是括起来所有的什么呀。所有的内容这样括起来才可以啊,我看这里面还报错吗?第三第二个第三行第一行第二行第三行。这里没有了,没有定义哦,这这里面是我看这怎么写的啊DEF。DEF啊,是这样写这这这三句话,这格式就对了,是如果没有定义这个东西,那么我就定义一下这个东西,怎么定义呢?是下面这种格式定义啊,如果定义完之后,我就怎么就不需要再定义了,知道吧,就是程序每次进来之后,他做一个判断条件是吧,判断就以这个名字去判断,判断什么判断你这个定位定义,你要把没定义之前的内容怎么着用这个。
20:17
井号比范和这个是。And if是怎么样括起来才行啊,这俩要括起什么,你这个内容,那如果program怎么着就是。不需要加这块内容是不是就行了,代码随便写就行,这是这个文件多文件编程上啊把整理一下这块啊,那把这保存一下。
我来说两句