00:02
除了。呃斯,Sta可以修饰变量之外呢,我们的sta还可以修饰函数。那么当一个函数被斯坦克修饰过后呢?它有哪些特点?我们也来聊两句。函数的使用方式与全局变量类似,在函数的返回类型前,我们加一个sta格,这个时候这个函数我们就称之为静态函数。我们就称之为静态函数,那么静态函数非和非静态函数有什么区别?我们来看一下,如果是一个非静态函数,可以在另外一个文件中通过h term引入。这个特点是不是以前没有没有给大家讲过,我待会举个例子,好,我们先把第二个例子给他举一个,比如说现在我有一个拜二。Fire,那那我们FIRE203吧,因为刚才已经有两个文件了,FIRE03,在FIRE03里面呢,我在这里定义了两个函数啊,一个是function function1,一个是FUNCTION2,那么第一个是普通,这个是普通的函数。
01:05
普通函数,而这个是什么呢?这个是静态函数,看到没有?静态函数,呃,为什么它是静态函数呢?是不是前面加了单提格。那么待会儿呢,我们可以看到,如果我在FIRE204里面去使用的话呢,如果在FIRE04这个文件,我想使用到这个普通的函数,这个普通函数也叫非静态函数,写到这吧。有些人也也喜欢叫非静态函数。非静态函数,如果我在8204里面要使用到这个FUNCTION1,其实我用一个S引入就可以使用了,我们来演示一下。还是老规矩,把前面这个呃文这些部分先给他注销一下,我们再接着举例,再举一个例子说明。好,这里面呢,我们写个8203。对不对,给他后缀改一下。再学一个FAIR04。
02:01
再写8204,这样呢,我们才把才能把这个讲清楚,8204。同样,我把后缀给他改一下。没问题,那刚才呢,我们已经有这么一个小案例,我先拿过来用一下,803我先把这个拿过拿过来放这。同学们,现在我需要在8204年去使用。方式一,我怎么用呢?非常的简单,Include std。好的,那么写一个主函数。那这里呢,我现在想去使用这个方式一,那我怎么用呢?我这样用就可以了。起来就可以用,那有些同学说,有些同学说老师能不能用呢,我给他试一下,方圆一。不传任何东西啊,同学们不传任何东西,因为这是贸易的,呃,贸易的就代表没有任何的输入,其实你也可以不写一样的,但是有些人喜欢加工贸易的,明确的告诉。
03:00
编程者说这个没有没有行差,那这样子为了好看呢,我们看看代码能不能跑起来,如果说不出问题的话呢,他应该输出hello from function hello from function1是这样子的吧,同学们,我们运行一下。我们运行它这个结果,我们发现呢,应该是没有任何问题的。那现在问题来了。啊,问题来了,如果看这里,如果是静态函数呢。它只能在声明它的文件中可以看得到,其他文件是不能引入该函数的。举个例子,比方说我们这里面不是还有一个静态的这个方程二吗?你说诶老师我想在这用,我能不能这样用呢?各位不行啊,看大家想我在这引入。引入这个地方实际上你给错了,你可以把它拿掉,拿掉过后你认为方向二可以用吗?我来看看能否使用。烤箱看起来语法没有报错是不是?但是不要忘了一件事情,方二是sta如果是个静态函数呢,它的它只能。
04:03
只能在本文件本文件中使用。因此你在这个方程式里面去extern其实是没有用的,说老师你用一下呗,试试看,它一定会报错。他也会报,报错了没有,报了报了错误呢,应该就是第五行,我们看一下是不是第这个错误点在这里。大家可以看到这里,他说。无法解析的一个外部符号方向二找不到啊,就就这地方找不到,所以说原因就是因为你使用static限制了我们function形二的一个使用率。这个就是静态函数,好,我就这就不再去引入了,好不好,不能引入,这是我们说的第四点,第四第四点不同的文件可以使用相同名字的静态函数,不互相影响,什么意思呢?跟前面一样。呃,同学们看。
05:00
如果说你这个地方有一个FUNCTION1了。那你在这个地方不能再定义方式一。但是如果说你这有一个静态的方向二,那你这用是没有问题的,我给大家演示一下,比方说我在这再定义一个函数。Voe的方程二。各位同学,我就我也不写东西了啊,我也不写东西,我们看语法能不能过就行了。你看这个会报错吗?他不会报错全对。是不是成功了呀,因为不冲突,但是有一个问题啊,你如果在这写个方块一,那就不行。为什么FUNCTION1不行呢?因为你已经有了呀,你这不是有了吗?对不对?你看我再来编译,这个时候就会报错了,他会说FUNCTION1已经定义过了。我们看代码。可他是不是已经报错了,已经到这儿来了?他说,找到一个或多个重复定义的符号,就它。就FUNCTIONK1嘛,这不写的很清楚吗?同意。所以说不能定义。好,同学们,那关于我们这一个函数使用经13题修饰的试点,需要同学们掌握和理解,在我们做题的时候,包括我们写程序的时候,一定要注意sta提修饰全局变量,局部变量修饰函数有什么特点?各位我现在呢,花一点时间把sta讲的内容进行一个梳理来捋捋。
06:21
我们13题课讲了哪些内容呢?梳理一把。梳理一把,首先呢,我们先做了一个基本的介绍,并且呢,先讲了局部变量使用CT的特点。是不是这样子的。一共提到了三点。提到了三点,我把案例呢给各位朋友板书到这里。代码演示。案例案例演示,那案例演示我们在在哪演示的呢?实际上就是这个题就可以演示了,是吧,那我从这边再拿一个吧。因为这边运行过会好一点。是不是这个题啊。我把它。
07:01
给各位朋友板书到这边来。大家一看这个案例呢,就应该想起来是怎么用的了。是不是这边案例应该是写的很清楚了,每个地方做了解解释的。把这个讲完了过后,我们又接着给大家讲了,如果全局变量使用C3K优势会有什么情况呢?来放到这。如果是全局变量来使用13K修饰,它的特点有这些。没问题吧,那同样我们是不是也举案例了呀?代码演示或者案例演示,案例演示我把案例演示也给同学们拿过来,在哪里呢?那就是这了,这两个文件一个是半零一,一个是零二,我给大家写到这了。一个是零一,一个是零二,好,各位同学,我们给大家板书过来。好。写到这里哈。第一个是。第二是fire。801.c文件。
08:01
当然还有一个。还有一个fire,诶,大写了。发零二.c文件对不对,发0.c文件,C文件呢,我们是在这里写的,是不是同学们我给大家拿过来。没有毛病吧,好,这个讲完了,是不是我们又讲了一个在函数使用丹提克的一个特点。是不是static函数呢?如果用static修饰,我们是有一个新的叫法的,什么叫法呀?叫静态函数,这边我也做了一些梳理。啊。就是。呃,如果说一个函数的返回类型加sta就是静态函数这么来的,到下面呢,会有一些具体的案例,比如说非静态函数,我们可以用X引入,静态函数呢,只能在它声明的文件中可见,那其他文件不能引入,对,而且不同的文件呢,可以使用相同的。相同名字的静态函数,如果是非静态函数,你就不能再取用相同的名字了,原因也是跟前面相关的,主要是因为静态的函数呢,它的作用域或者它生效的范围只在本文件,因此你在别的文件再写一个名字呢,它并不影响。
09:13
然后写到,这叫做案例演示。案例。案例演示给大家梳理到这里好不好?那首先我们写的是这个文件。零三。来操作一个小表格。803.c没问题。这个说完,是不是我们还写了一个804.c。二零四点实验呢,也给各位朋友板书到我们的笔记中去即可。O了,好,各位同学,那关于13题课呢,我们讲解这些就足够大家使用了,不管是你们做做这个考试考二级,还是在实际的开发中使用呢,这些内容就足够大家了。好,关于这一讲,我们就聊到这里。
我来说两句