摘要:
写出先入先出队列的结构体Queue定义,并实现以下函数:(15分) 1,Queue *create(int size):创建一个能放size个int类型的队列,返回队列的指针。 2,int put(Queue *queue, int value):将value入队,返回0表示成功,-1表示出错。 3 阅读全文
摘要:
三种链接属性 1,程序的生成过程:编译+链接。编译以文件为单位,编译器将所有的源文件依次读进来,单个文件进行编译,最后将函数/变量等变成.o的二进制机器码;链接以工程为单位,链接器将编译之后产生的.o文件整体的输入,然后处理链接成一个可执行程序。 2,链接属性就是在链接过程中,对于一个.o文件中的符 阅读全文
摘要:
一,栈变量的生命周期 1,局部变量存储在栈上,生命周期是临时的。从定义变量处诞生到变量最近的 ‘}’处消亡。 2,比如一个函数内定义的局部变量,在这个函数的每一次调用时都会被创建一次,然后使用,最后在函数返回时消亡。 二,堆变量的生命周期 1,堆空间是客观存在的,是由操作系统维护的。程序只是申请然后 阅读全文
摘要:
一,auto 1,修饰局部变量,表示这个变量是自动局部变量,自动局部变量分配在栈上,使用前如果不初始化它的值就是随机的。 2,定义auto局部变量时auto可以省略,平时定义普通局部变量时就是auto类局部变量。 二,static 1,两种用法 一种是修饰全局变量/函数 和普通的全局变量/函数对比s 阅读全文
摘要:
一,内存图示 二,各内存段的作用 1,代码段、只读数据段 对应着程序中的代码(函数),代码段在Linux中也叫做文本段(.text) 只读数据段就是程序在运行时只能读不能写的数据,const修饰的常量就有可能存放在只读数据段。 2,数据段、.bss段 数据段存放,显示初始化为非0的全局变量和显示初始 阅读全文
摘要:
一,什么是对齐 1,现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问都可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问。 2,所以这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。内存对齐又分为自然对齐 阅读全文
摘要:
一,int myStrlen(const char *s); size_t myStrlen(const char *s) { size_t cnt = 0; while(*s++ != '\0') { cnt++; } return cnt; } 二,char *myStrcpy(char *de 阅读全文
摘要:
一,计算机存储系统的大小端 1,大端模式:高地址存放底字节数据,低地址存放高字节数据。 2,小端模式:高地址存放高字节数据,低地址存放低字节数据。 3,图示:32位系统 4,两种判断计算机大小端模式的办法 #include<stdio.h> union myunion { int a; char b 阅读全文