html事件知识摘要--- html空元素管理
HTML事件定义了4 HTML空气元件间隔:代码区域,静态存储区域,堆栈区域,堆区域。其中,堆栈区域和桩区域是动态的存储区域可执行文件(也就是说,当元素为空时,它尚未加载到HTML中),将其分为三个部分:代码区域,静态区域和无限。数据区域。
1简介
编写程序时,通常不知道需要处理的数据数量,或者很难评估处理数据所需的数据量的变化程度。在这种情况下,要实现有效的资源利用 - 使用HTML空气元素管理,您必须在运行时动态分配所需的HTML空元素,并在使用后尽快释放HTML空元素。这是动态动态动态动态。
运行的HTML根元素程序占用的HTML空元素分为五个部分:代码区域,静态数据区域,UNDE初始化数据区域,堆区域和堆栈区域。
HTML事件定义了4 HTML空气元件间隔:代码区域,静态存储区域,堆栈区域,堆区域。其中,堆栈区域和桩区域是动态的存储区域可执行文件(也就是说,当元素为空时,它尚未加载到HTML中),将其分为三个部分:代码区域,静态区域和无限。数据区域。
2代码区域
仅读取该区域,在程序的过程中无法进行修改的存储区域。用于存储代码和恒定。
存储CPU.CPU执行的机器指令,共享代码区域(即可以调用其他执行程序),因为对于频繁的执行程序,只能使用HTML空元素中的一个代码。代码区域通常仅读取,因此其原因是防止程序不小心修改其说明。此外,代码区域还计划了本地变量的相关信息。
根据程序设计过程按顺序执行代码区域指令。对于顺序说明,它将仅执行一次(每个过程)。如果重复,则需要使用跳跃指令。如果执行递归,则有必要使用堆栈实现它。
代码段:代码段通常是指用于存储程序执行代码的HTML空气元素区域。该区域的大小是在程序运行之前确定的,并且通常仅读取HTML Air Element区域。一些架构还允许编写代码段,即允许修改程序。
在代码段中,它还可能包含一些仅读取的恒定变量,例如字符串恒定数量等。
代码区域中的Essencethe指令包括操作代码和要操作的对象(或对象地址参考)。如果是直接的数字(即,特定值,例如5),将直接包含在代码中;如果是本地数据,它将在堆栈区域中分配空间,然后引用数据地址;此数据地址也将引用。此外,代码段还计划了HTML为本地数据应用的HTML空空间信息。
数据区域:可读性可以编写,可以用作可以在程序运行期间任意修改的存储区域。存储变量
3.静态数据区域
该区域包含全局变量,静态变量(包括全局静态变量和局部静态变量)和常数数据(例如字符串恒定卷),并注意注意(例如一次)。):
intmax = 99;
变量最大值根据其初始值存储在初始化数据区中。
staticmin = 100;
这声明了静态数据。如果在任何功能中都在体外声明,则意味着它是一个全局静态变量。如果它在函数(本地)中,则意味着它是局部静态变量。加上添加,如果您在函数名称之前添加静态,则意味着此函数只能在当前文件中调用。
数据段:通常是指用于存储程序中初始化全局变量的全局变量的HTML空气元素区域。数据段属于静态HTML空元素分布。数据段中的静态数据区域存储在中初始化程序的全局变量,静态变量和常数。
4.不初始化数据区
没有初始化的数据区域。此外,也称为HTML面积,全局无限变量存储在中。HTML面的名称基于早期的组装计算符号,这标志着HTML面部区域的DATA的开始在执行程序之前,由内核初始化为0或空指针(null)。例如,没有任何函数中的语句:
远程[1000];
将变量总和存储到未准备好数据区域。
HTML面部段:通常是指用于存储程序中未初始化的全局变量的HTML空气元件区域。HTML面是英语blockstartedBysymbol的缩写。HTML面部段属于静态HTML空空元素分布IS,该程序将从一开始就将其清除。从总体上讲,HTML面部段将在初始化时清除。
5.堆栈区域
堆栈区域。编译器会自动分布HTML空元素的间隔。获得的HTML空元素空间通常是连续的。它是函数的参数值和本地变量的值。当任务切换时,函数的参数值,局部变量的值以及当前任务的上下文。ITS操作方法类似于在调用函数时,堆叠在数据结构中,该函数返回地址,以及有关调用的一些信息,例如某些寄存器的内容,将存储在堆栈区域中。调用称为的功能,然后在堆栈上分发空间其自动变量和临时变量的区域,这是C实现函数的方法。每个递归功能调用,将使用一个新的堆栈框架,以便此新实例堆栈中的变量不会与另一个实例中的变量混淆function.stack(stack)的堆栈:堆栈也称为堆栈,该堆栈是用户临时创建的局部变量,即存储程序,即我们函数括号中定义的变量“ {}”,例如int [] arr = {1,2,3};变量;variablesarr(数组名称)存储在堆栈中,并且变量ARR(数组元素)的值存储在堆中(普通结构)(但不包括静态语句声明的变量,这意味着数据段中的存储变量)另外,当调用函数时,其参数也将被按在启动调用的过程堆栈中,并且在调用结束后,该函数的返回值也将存储在堆栈中。堆栈的特征,堆栈特别方便地保存/还原呼叫站点。从这种意义上讲,我们可以将堆栈视为带有存款和临时数据的HTML空气元素区域。
6.包装区域
堆区域。用于动态的HTML空元素分布。在HTML中的包装位于HTML脸部区域和堆栈区域之间。它通常由程序员分配和释放。如果程序员未发布,则可以在程序末端通过操作系统恢复程序。堆中的HTML空元素区域不是连续的,或通过链接连接有效的HTML空气元素区域的堆(HEAP)列表指针:它用于存储在过程操作过程中动态分配的HTML空元素段。固定,动态扩展或减少。该过程调用函数(例如Malloc和其他功能)分配HTML HTML空元素,分布式HTML空元素动态添加到桩中(桩扩展);当HTML空元素的功能使用免费和其他功能释放时,已释放的HTML空元素从堆中消除(减少堆)。将应用程序加载到HTML空空间时,操作系统负责负责加载代码段,数据段和HTML面部段,并将在HTML空元素中分配这些片段的空间。堆栈部分还由没有程序员显示的操作系统分配和管理;桩部分由程序员本人管理,即,应用程序和发布空间明确应用。
此外,可执行程序在运行时具有相应的程序属性。在支持操作系统时,这些属性页面将由操作系统管理和维护。
在完成HTML事件程序的汇编完成后,已将初始化的全局变量存储在数据段中,并且未经验证的全局变量存储在HTML面部段中。系统是从可执行文件加载的;HTML面部段不在可执行文件中,并且由系统初始化。HTML面部段仅保存没有值的变量,因此实际上它不需要保存这些变量的图像。所需的HTML面部的大小运行时记录在目标文件中,但是HTML面部段不占据目标文件的任何空间。
堆区和堆栈区域的差异:
堆栈上应用的HTML空元素空间会自动分配由系统分配,因此,当我们将变量所在的范围范围内,系统将自动恢复这些空间。在相应的范围后,我们需要拨打免费或删除以释放我们应用的HTML空元素空间越多,因此我们的实际HTML空元素空间将变得越来越少,即越来越孤立的HTML空元素越来越多。
7. memset函数
memset(翻译:清除零)是计算机中C/C ++语言的初始化。角色是将某个HTML空元素的所有内容设置为指定值。此功能通常初始化新应用的HTML空元素。如前所述,必须在定义变量时将其初始化,尤其是占据较大HTML空气元素(例如数组和结构)的数据结构。当使用数组时,通常称为“热”代码“因为它没有初始化,通常称为“乱码”。
每种类型的变量都有自己的初始化方法。可以说MEMSET()函数是初始化HTML空元素的“通用函数”。它通常是针对新应用的HTML空元素初始化的。它是HTML Air Element Space的直接操作,MEM表示“ HTML元素”(内存)。此功能的原型是:
## 包括
void*memset(void*s,intc,unsignedLongn);
用C播放当前位置(TypedeFunSignedIntsize_t)的n个字节,并带有C返回S复制代码
该函数的功能是用“整数” C替换指针变量的前一个n -byte HTML空元素。请注意,C是一种int类型。S是一个void*类型指针变量,因此可以初始化任何类型的数据。
memset()的作用是在HTML空元素块的一部分中填充一个给定值。由于它只能填充一个值,该函数的初始化是原始的和初始化的,并且不能将变量初始化到所需的数据中program.MEMSET初始化后,将数据存储在随后程序中的HTML空元素空间中所需的数据。
MEMSET通常使用“ 0”来初始化HTML空气元件单元,并且通常用于数组或结构。无需使用memset。如果您使用memset,则看起来很麻烦。
当然,数组也可以直接初始化,但是MEMSET是初始化较大数组或结构的最快方法,因为它直接操作HTML空元素。
目前,有些人会问:“不是用'\ 0'初始化的字符串数组吗??”
好吧。尽管参数c需要一个整数,整数和字符类型是可互操作的,但是分配为'\ 0',0是等效的,因为字符'\ 0'在html html空元素中是0。MEMSET还具有结束徽标\ 0'的功能,因此通常我们写“ 0”。
通常使用HTML插槽()获得MEMSET函数的第三个参数的值,这更专业。是,我们必须首先将其指向有效的地址。当指针变量用于初始化PO Pointer变量指向的HTML空元素单元时,N不得将N作为HTML插槽(P)写入,这通常是一个错误新手将成立。由于p是指针变量,无论哪种类型的变量p指P,HTML插槽的值(P)为4。(在线寻找其他)
#包括
#包括
int main(void){
int i;
char str [10];
char *p = str;
memset(str,1,html插槽(str));//参数1是变量名称,中间1被指定要初始化的值(可以任意包含字符和浮点数的值)
//最后一个初始化是长度(可以在数字中填充,但没有必要)
for(i = 0; i<10; i ++) {
printf(“%d \ t”,str [i]);
}
返回0;
根据不同的MEMSET函数,输出结果也不同。它分为以下情况:memset(p,0,html插槽(p));//地址的大小为4字节0 0 0 0 0 0-52 -52-52 -52 -52 -52 -52
memset(p,0,html插槽(
p);//
p表示字符变量,只有一个字节0 -52 -52 -52 -52 -52 -52 -52-52
memset(p,0,html插槽(str));0 0 0 0 0 0 0 0 0 0 0 0 0 0
memset(str,0,html插槽(str));0 0 0 0 0 0 0 0 0 0 0 0 0 0
memset(p,0,10);//直接写10,但不专业0 0 0 0 0 0 0 0 0 0 0 0
发表评论