摘要:
1、申请方式stack: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间heap: 需要程序员自己申请,并指明大小,在c中malloc函数 ,如p1 = (char *)malloc(10); 在C++中用new运算符 如p2 = (char *)malloc(10); 但是注意p1、p2本身是在栈中的。2、申请后系统的响应栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时, 会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空 阅读全文
摘要:
1、BIOS:"Basic Input Output System" 基本输入输出系统是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。BIOS和CMOS区别:CMOS 是电脑主机板上一块特殊的RAM芯片,是系统参数存放的地方,而BIOS中系统设置程序是完成参数设置的手段。因此,准确的说法应是通过BIOS设置程序对CMOS参数进行设置。2、BIOS主要程序(1)BIOS终端例程 BIOS中终端例程即BIOS中断服务程序。它是微机 阅读全文
摘要:
1.头文件并不参加链接和编译。编译器第一步要做的就是简单的把头文件在包含它的源文件中展开。不知你是否能理解这句话。也就是头文件里面有什么内容,通通把它移到包含这个头文件的源文件里。(我觉得这是个很重要的概念,可以帮助我们简化理解编译链接的过程,包括理解头文件中定义静态变量或静态函数是怎么回事)。编译器经过这一步转换后剩下什么呢?就是一堆cpp文件了。而头文件已经不再是编译器需要关心的东西了。编译器接下来就要处理这一堆cpp文件了。2.接着编译器调用cl.exe编译所有的cpp文件并生成对应的obj文件。每个obj里面有很多函数,但并不是每个函数都有具体的实现代码,有些函数的实现是在其它的obj 阅读全文
摘要:
1、运算符重载是为了对用户自定义数据类型的数据的操作与内定义的数据类型的数据的操作形式一致。不能重载的5个运算符:*成员指针访问运算符;::域运算符;sizeof长度运算符;?:条件运算符;.成员访问符。运算重载的三种方式:普通函数,友元函数,类成员函数。当重载为成员函数时,双目运算符仅有一个参数。对单目运算符,重载为成员函数时,不能再显式说明参数。重载为成员函数时,总时隐含了一个参数,该参数是this指针。this指针是指向调用该成员函数对象的指针。运算符重载函数还可以为友元函数。当重载友元函数时,将没有隐含的参数this指针。这样,对双目运算符,友元函数有2个参数,对单目运算符,友元函数有 阅读全文
摘要:
大家是怎样安排业余时间来学习的?导语:大部分人在工作之余应该都要安排时间学习新东西或深入研究,请问大家是怎样安排业余时间来学习的?有没有高效的方法?warfalcon,战隼的学习探索博主我现在的在做的:1、每天早上5点起床,看半小时书,学半小时英语。用SuperMemo每天背20-30个英语并复习以前的单词。剩一小时更新BLOG。2、做车的时候和排队的时候用成寒的听力练习,听英文童话故事3、K3里放些英文童话,有空的时间看看,或者用手机看FML4、中午或晚上找时间看书,坚持每天看完一本书,并写出200-300字的短评,每天用半小时左右做笔记或思维导图。这个习惯打算先坚持一年,看看效果,今天是第 阅读全文
摘要:
udp格式如下图所示:下面分析一帧基于UDP的TFTP协议帧。以太网首部0000: 00 05 5d 67 d0 b1 00 05 5d 61 58 a8 08 00IP首部0000: 45 000010: 00 53 93 25 00 00 80 11 25 ec c0 a8 00 37 c0 a80020: 00 01UDP首部0020: 05 d4 00 45 00 3f ac 40TFTP协议0020: 00 01 'c'':''\''q'0030: 'w''e''r' 阅读全文
摘要:
参考:宋劲杉 的 linux c1、目的主机收到数据包,处理各层协议栈最后达到应用程序的过程。以太网驱动程序首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷(payload,指除去协议首部之外实际传输的数据)是IP、ARP还是RARP协议的数据报,然后交给相应的协议处理。假如是IP数据报... 阅读全文
摘要:
第四章:开始学习C++1、内联函数声明为inline,它在调用点上被“内联”地展开,内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在调用处。2、关于extern “C”在c++语言中调用c库函数时,将c的函数用extern “C”声明,以确保c++程序中调用的c函数是用c语言的规则进行编译的,而不是用c++规则编译的,这样才能正确的调用到自定义c库函数。一般为:#ifdef _cplusplusExtern “C”{ #endif … #ifdef _cplusplus}#endif3、函数指针函数声明为:void Invoke (char* s);定义fp为指向函数Invoke的 阅读全文
摘要:
最近看了这本由中国水利水电出版社出版的这本书,作者是梁永军,感觉里面的东西对我个人来说挺有用的,所以总结一下,也算是自己复习一下第一章:C语言关键知识1、关于内存:(1)栈:是用于那些在编译期间就能确定存储大小的变量的存储区,在函数作用域内创建,离开作用域后自动销毁。通常存储的是局部变量、函数参数等。存储区域一般是相邻的。(2)堆:是用于那些在编译期间不确定存储大小的变量的存储区,存储空间一般是不连续的,由malloc(new)和free(delete)来申请和释放内存,(3)全局(静态存储区):在编译期间就能确定变量占用内存的大小,一般是全局变量和静态变量。(4)常量存储区:存放的是常量,程 阅读全文
摘要:
1、POP:Post Office Protocol 是一种电子邮局传输协议,而 POP3 是它的第三个版本,是规定了怎样将个人计算机连接到 Internet 的邮件服务器和下载电子邮件的电子协议。它是 Internet 电子邮件的第一个离线协议标准。简单点说,POP3 就是一个简单而实用的邮件信息传输协议。IMAP:交互式邮件存取协议,它的主要作用是邮件客户端(例如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。IMAP协议运行在TCP/IP协议之上,使用的端口是143。POP端口为110,SMTP端口为25。POP3 允许工作站检索邮件服务器 阅读全文