00:00
全局静态区啊,咱把这个全静态区呢,里边有几个小点,咱们俩分开呢,都说一遍啊,说一遍理解了。啊,又是CP的对吧,选C了啊,这边我们来个井号一啊,然后第一个呢,咱们来说一下啊,那么如果写in的A。等于十这个车呢啊。这块电存放在哪了这边,哎是不是全区吧,哎全区对吧,啊全区。那么如果这么写,加这个。你的B等于20放大啊。就说这个,哎,这点区是不是啊把这区。那么这两个像上午咱们说了这俩肯定放去这个静态区了,那么如果再写个word往来了,TEST01。我来。
01:01
You know。在哪啊,也在静态区,明白了吗?啊,不管是全局变量,不管是局局部的静态变量,都是放哪静态区。哎,这几个方都是咱们所说就是全局在区,那么这两个有什么区别啊。那么这两有什么区别啊,作用率啊,就说作用率是哪个作用率啊,其实说白了就是说这个符号的一个可见范围。啊,可见范围,那么你比如说这个C呢,只在什么这个大号开始,这个大号就是只在这个里面,可见你在这个大号外面是不能用这个C的。你只用C的话。报错了没有未定义是不是啊,哎,所以它外面是不可见的,但是上面这个是不是就可见啊,哎,从它定义的地方呢,一到文件结尾都是可见的。明白吧,这是这两个的区别啊,全局静态变量和局部静态变量,只是这个符号呢啊,这个可见范围不一样啊,那么这么这个这样写对吧。
02:05
那全局静态变量和局部静态变量,哎,都玛都存储在。静态区是吧,哎,都是么,在程序运行期间呢,都是。合法的,合法有效,你就说他不会被释放了,明白吧,啊那第二个。哎,局部静态变量啊,变量符号的可见范围。哎,仅限于当前海事内部是不是,哎全局。静态变量,哎,可见范围在哪,哎,从定义到文件结尾。这家能理解吧,能听啊,能理解。那么是这两个局部的和分析的这两个区别,那么重点咱们不是说这个呢,说啥呢,说这两个。
03:06
这俩区别的一个近的绝变量,一个全变量,那么这两个是什么区别呢?上次咱们说了说如果你直接写个in的A等于十的话,其实呢,这个地方写的相当于什么。X乘in a等于十是不是这样写啊,那么加一个字的话,那么这个关键字呢?这个一字模默认情况下是在C言里面是省略的,明白吗?啊,加一增呢,它是默认是。外部链接。那么如果加上三这个的话,那么这个地方是静态全局变量啊,是什么内部链接,那么内部链接问题是内部链接。和外部链接有什么区别?是不是有什么区别啊,哎,这是咱们的关系呢,哎,咱们可以先回答一下这问题,然后呢,写代码验证啊,那么第一个。
04:02
啊,第一,哎,如果变量是。哎,是吧,是内部链接的话。那么自变量。只能什么?只能在当前文件内访问,它有使用访问。这大家能理解吧啊。哎,如果变量是外部链接的话,那么子变量哎可以什么被其他文件使用,那么其他文件就是其他的一个点C文件,或者其他一个点CP文件。明白吗?那么这个这说到这儿啊,有一个点需要大家清楚了啊,那么程序在编译的时候呢,头的念是不编译的。点合文件是不编译的,明白了吗?啊,点H文件是不编译的,我们编译的时候呢,只编程文件。角C角CP明白吗?这才是乘以文件啊,因为角H里面都有声明,说明是不需要编译的,我们编译的都是角角C文件,我们把一个点C文件呢叫做什么叫做一个编译单元。
05:12
啊,这做一个边译单元,这个大家能理解吗?概念啊,然后咱们说后面还会再提这个啊,然后现在咱们验验证一下啊,然呢,我这个的话再增加一个文件啊,不要来一个test点嘛,点C。得了,我在这个里面呢,我再写个T0啊,Word test02。然后呢,我在这里面呢,定义一个变量要in。什么叫做胳爆发,对吧?跟我币吧。啊,解约好吧,等约100,哎,胳膊变量啊,然后呢,这个如果咱们说如果我要没有写三,还默认什么是内不在积,还300积,哎,就说你不想强是不是有一份啊,咱们说末是外部链积的变量。都我在这个检测件当中使用啊,是可以的,哎,然后呢,直接print f。
06:07
百分号D,完了,咱们来个GA,等于大号D,来写个N,再来一个G。诶。怎么样?是不是写错了?写错了对吧,等等把这基呢拷贝过来把它。哎,还是报错,哎,我要求他报错,那么为什么会报错呢?没有说明,哎,没有什么没有声明,那为什么你应该先证明呢?对对。变成了新声明呢,那么这个时候咱们需要了解一个编译的时候,一个哎这个流程对吧,来说一个过程是这样的是吧,咱们刚才说一个点C文件的话,咱们叫一个什么编译单元。记住啊,头文件。不什么同建不编译,哎不怎么不参与编译对吧,因为它只是声明嘛,声明没啥编译的嘛,是不是,哎然后呢,哎,每一个点C文件,哎,我们叫做什么。
07:11
叫做一个编译单元。二零等,然后呢,还有一个点需要知道啊,那么编译器在编成这么多C文件怎么编呀,编译器在编译这个自用电的时候呢,它记应什么,有个词叫什么叫独立编译。边际呢,哎,独立边。哎,独立编译每一个。点C的间什么意思呢?也就是说边这个点C的多少,他根本就不知道t.C里边写啥。边差点C的热呢,他也不知道全局静态区角C里面写啥。大家能明白吗?他单独的编辑的文件,他是根本就不知道其他的角C文件里边写什么东西的,也就所以说你在这个地方直接用GA的话,那编辑辑在编辑这个文件的时候,发现到那发现哦,你是个G。
08:03
然后呢,但你们院没有啊,是不是啊,所以他不会主动去其他文学去找的。明白吗?他这个时候就写已经给我们报错了,明白吗?编的时候也给我报错了。所以这个时候怎么做呢?哎,我们是不是其他文件也有啊,所以这个时候咱们通过什么,通过声明,声明的作用就显示出来了,声明干嘛用的。在你使用一个符号的时候,你看以后记得啊,我在说符号的时候表什么表示函数名啊,它这个变量名啊,啊都用这些符号明白吗?啊统数这些符号,但是使用这些符号的时候,你必须要告诉别人说这个基因也是有的,只过当前文件没有,你让我呢先变性通过。让谁去找啊?练习器,哎,让习器去找去吧,咱去链接一下,如果练习器链接不到的话,再给你报个链接错误就完事了。是不是哎所先要变译通过,所以这个时候咱怎么写呢?写声明写什么exer,哎要加什么exer,加上他加什么像in的。
09:03
加借。叫他就OK了,那么这个地就叫寿命。啊,表示什么表示,哎,告诉编译器这个符号是存在的啊,你呢,你让我先编译通过对吧。啊就这意思,绕序列通过那绕这样啊,最后呢,绕那一句呢。练习器去找,哎,到底这个符号。在。明白了吧,啊,这个时候我们再点一下啊。是不是通过了,哎,如果这个没有报错的话,那基本上链接也成功了,因为这个这个集成开发环境吧,是编译汇编链接这个这一套步骤全做做完了啊说这个时候我们再执行。哎,这就100出来了,那么这个时候呢,你看啊你看啊,这个时候如果把它干掉的话。是不是没有啊。
10:00
那写这句话是不是骗编译器了,是骗他了,骗他之后,那么变音器是不是就不高兴了,你像这个报错,肯定谁报错了记下来。因为你已经告诉冰玺说。有电器项等等,哎,然后呢,做练习去练习的时候因习不当,你就可以报什么是方面接错误是不是,哎咱们。哎生同样你看这个时候,你看一个以后,你看到这个问题,什么无法解析啊,外部符号或者什么一个无法解决到命令,这就叫什么根本就没找到这原因,这是谁报错啊,他得把link说link啊I07报错明白吧,他找的方法没找着。爆炸了。这大家明白了吗?哎,这样的话叫内部外部面,也只有外部面也属于这样一个变量,那么如果我们在前面,刚才是我恢复正常啊,直接下看结果啊,这边没有问题的,是不是一把爽到了,其他文件找到了,那么当我把这个变量写成什么。写成sta,咱们说如果这个变量形成sta的话。
11:02
那表示这个基因呢,只能在单调门内访问,其他的访问不了了,那么你想一想,你这个地方就高尔电器有了,然后你就连接不到,报什么错了,是不是函数为错误?哎,这个问题知道什么意思了吧?知道生命是干嘛的吗?哎,函数生明也是一样的,当你调一个函数的时候,如果当性文件没有,那么这个时候你要需要先声明一下。如果你要比方说咱们为什么在写写这个点C文件需要发案同文件啊,因为你如果在这个点C文件,你手写声明化给交100函数,你是不是要写100次这个函数声明啊,所以我们直接把它放到哪啊,就放到同步件里面,直接放到同步件,让这个预处理器把这文件直接拷贝进来,咱是不是就省事了,明白了吧,哎,三明就是干这的。文件也是,刚才头文件就是放声明,所以说你用写代码的话,头文件里不要放什么,不要放定义,只放什么,只放声明。只放声明,头文件里边不要放什么。
12:00
你好。不要什么放定义,只放什么声明,哎,生号变量证明还有证明都行,后面学增加类证明,只放证明不放定义,什么叫定义啊,函数对于函数来讲。静音的话是不是好几啊。最好体啊啊有函数几叫定义,明白吗?就写大括号的话叫定义了,如果你不写大括号叫什么?说明对变量而言的话,你直接给它等个值啊,那叫什么就定义了。如果你要想写说明的话,直接怎么写写it time。E呢,GA就可以了,第二个叫说明。这大家能理解吧,哎,对照声明。这能理解吗?能理解吧,刚才咱们说那个。是不是有点绕啊?这个内部链接和外部链接大家能理解吧,能理解对吧?哎,就是一个单向连接法,一个是其他文件可绑了,对吧?哎,这个时候咱们说你在调一个符号的时候,符号咱们你我再说符号就什么,就函数或者变量,那么在使用的时候,如果这个符号和变量当前文件也没有定义,因为号咱们说编析在变译的时候,是不是不知道其他文件里边写啥呀。
13:09
是不是啊,哎,他是不知道写的,所以这个时候我们先写个说明,告诉别你说有,如果咱们确实写,咱告诉他有是不是让谁去找,那续继续找,连续找的时候就会其他其他文件来回去找,他会找到这个符号有没有,到底有没有,有的话接没有啊报错。明白了吗?啊,那么所以说呢,这个生命的作用呢,就是说你一些函数啊或变量在其他文件里面定义啊。那么这个时候当前文件没有,所以说呢,我们需要把这个符号的声明呢,写到当前文件里面,但是如果每次手写的话,是不是比较麻烦呀,所以说呢,咱们就把声明写哪啊起到一个叫头文件的东西里面吧,里面放的全是声明,没有任何的定义。这样的话,我每次在你看这个里面是不是放的也是全声明啊。这里边儿全是证明,明白吗?如果你像。文件是不是很多,如果每次需要s SE lab这个这个这个库里边的函数的话,你都需要,是不是都需要写一大堆证明啊,是不是啊,是不是很麻烦,你直接把它写在原文件里边,需要的时候直接include再赖了。
14:11
问题是不是比较简单了?是不是啊,你少写多少张啊?是不是啊,你要留多少头发呀?是不是有问题啊?啊,你像每次写那么多,不得愁死啊,是不是?最大理解了啊。那么这块呢,这个独立编译呢,还是这个还是比较重要的啊,你需要理解理解这个独立编译,大家能理解吗。能能能理解吗?如果不一解的话,课下再问我啊,这块哪个哪个地方不理解再问我啊。那么这个呢,是一个啊,内边接和外连接就exce和S的区别啊。
我来说两句