4 LEELOTOUS

尚未进行身份认证

加油

等级
TA的排名 12w+

函数返回局部变量

函数返回局部变量在一次C语言实验中,在定义函数返回char*类型的局部变量时,编译器警告“函数返回局部变量地址”。经查资料发现,一般的来说,函数是可以返回局部变量的,但是要注意几种情况。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是...

2019-11-19 17:30:05

关于地址转换函数

关于地址转换函数在进行网络编程的时候,常常会遇到ASCII字符串与网络字节序的二进制之间的地址转换问题。老版本的函数有:inet_aton(), inet_addr(), inet_ntoa()inet_aton原型:int inet_aton(const char *strptr,struct in_addr *addrptr);功能:将strptr所指的字符串转换成一个32位的网络...

2019-11-19 17:00:30

主机字节序与网络字节序

主机字节序与网络字节序字节序:字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。常见的字节序有:Little endian(小端,LE):将低序字节存储在起始地址小端模式是最符合人的思维的字节序,地址低位存储值的低位,地址高位存储值的高位Big endian(大端,BE):将高序字节存储在起始地址最直观的字节序,地址低位存储值的高位,地址高位存储值的低位,不要考虑对...

2019-11-19 15:23:49

共用体Union

共用体Union之前编程很少用到共用体union,最近在学习网络编程的时候,发现一个测试系统大小端的程序利用到了Union的特性,现将其介绍一番。(参考博文:http://c.biancheng.net/view/2035.html)union,共用体,其定义格式如下:union 共用体名{ 成员列表};结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影...

2019-11-19 15:12:24

结构体边界对齐问题

结构体边界对齐问题在构造DNS应答包的Answer字段时,我定义了一个结构体,如下所示:typedef struct{ __u16 name; __u16 type; __u16 class; __u32 ttl; __u16 length; __u32 ipv4_addr;}DNS_ANSWER_DATA;但是在进行数据包的构造的时候,在...

2019-11-19 11:35:32

对于一些常用数据类型的理解

对于一些常用数据类型的理解在上个项目的网络编程中,遇到了很多typedef定义的数据类型,现进行记录,主要参考了一下链接:https://blog.csdn.net/EUSIA/article/details/76401235https://www.cnblogs.com/curo0119/p/8891906.htmlhttps://www.jb51.net/article/109690...

2019-11-19 10:41:28

使用insmod安装内核模块失败

使用insmod安装内核模块失败由于centos主机与要开发的平台系统版本号不同,因此在编译的时候,如果是要烧录到路由器中,则以其系统版本号为准,如果是在PC机中模拟运行,则以主机系统版本号为准。通过命令uname –r查得PC主机的系统版本号为3.10.0-957.el7.x86_64,而设备开发系统版本号为3.10.14,因此在编译的时候,注意Makefile中相关的路径问题:当在主机中...

2019-11-19 10:30:42

DNS协议分析

DNS协议分析协议描述DNS协议是用来进行域名与IP地址之间的转换的。当一个应用进程需要把域名解析为IP地址时,该应用进程就调用解析程序,把待解析的域名在DNS请求报文中,以UDP数据报方式发送给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在DNS应答报文中返回。若本地域名服务器不能回答该请求,则向其它域名服务器发送查询请求,直至找到能够回答该请求的域名服务器。协议数据格式...

2019-11-12 14:13:53

DNS协议分析

DNS协议分析DNS协议是用来进行域名与IP地址之间的转换的。当一个应用进程需要把域名解析为IP地址时,该应用进程就调用解析程序,把待解析的域名在DNS请求报文中,以UDP数据报方式发送给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在DNS应答报文中返回。若本地域名服务器不能回答该请求,则向其它域名服务器发送查询请求,直至找到能够回答该请求的域名服务器。协议数据格式根据RF...

2019-10-10 17:51:27

C++ 编程题总结

好久没有代码,感觉自己好多东西东忘了,这两天上牛客网刷了几道题。成绩排序查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。示例: jack 70 peter 96 Tom 70 smith 67从高到低 成绩 peter 96 jack ...

2018-07-20 14:35:03

指令系统

指令系统MIPS操作数 MIPS算术运算指令的操作数必须来自寄存器。 寄存器分类: MIPS汇编指令算术指令 数据传输指令 在存储器和寄存器之间移动数据的命令 ex1: 假设变量h存放在寄存器$s2中,数组A的基址放在$s3中,试将C语言:A[12] = h + A[8]翻译成MIPS指令: lw $t0, 32($s3) #从内...

2018-07-17 16:17:06

虚拟存储器

虚拟存储器虚拟存储器定义一种将主存用作辅助存储器高速缓存的技术 当代计算机系统的主存主要由半导体存储器组成,由于工艺和成本的原因,主存的容量受到限制。然而,计算机系统软件和应用软件的功能不断增强,程序规模迅速扩大,要求主存的容量越大越好,这就产生了矛盾。 为了给大的程序提供方便,使它们摆脱主存容量的限制,可以由操作系统把主存和辅存这两级存储系统管理起来,实现自动覆盖。...

2018-07-17 14:24:14

高精度运算

高精度加、减、乘、除算法高精度运算作用当参与运算的数据和运算结果的范围超出标准数据类型能表示的数据大小范围的运算时,依靠普通的方法显然不能得到正确的计算结果,因此可以采用高精度算法来进行计算 高精度加法由于高精度数据的位数较高,因此我们可以用字符串的方法来输入数据,并将字符串转换成数字形式存储到int类型的数据中,对数组进行循环,按位做加法运算,并注意进行进位操作。 由...

2018-07-16 23:49:59

几种获取字符串和字符数组长度的函数的区别

几种获取字符串和字符数组长度的函数的区别sizeof()、 length()、 strlen()、 size()strlen(str)和str.length()和str.size()都可以用来求字符串的长度 str.length()和str.size()是用于求string类对象的成员函数 strlen(str) 是用于求字符串数组的长度,其参数是char* 其他的参考博客:h...

2018-07-16 19:35:31

KMP算法

在进行字符串匹配的过程中,如果直接使用暴力法匹配,则时间复杂度为O(mn),其具体代码如下: int string_match(string T, string P){//普通的字符串匹配算法,时间复杂度为O(mn) int i=0; int j=0; int lenT=T.size(); int lenP=P.size(); cout<&l...

2018-07-16 16:53:09

操作系统概述

操作系统概述操作系统(Operating System,OS)是配置在计算机硬件上的第一层软件,它既承担管理计算机硬件和软件资源的角色,又兼有服务者的职责,为用户使用计算机提供方便,同时作为基础设施,为应用程序提供运行平台。 操作系统作用可以从不同的观点(角度)来观察OS的作用。从一般用户的观点,可把OS看做是用户与计算机硬件系统之间的接口;从资源管理的观点看,则可把OS视为计算...

2018-07-15 09:37:16

高速缓存cache

高速缓存cachecache的基本原理 cache是一种小容量高速缓冲存储器,由快速SRAM组成。在CPU和贮存之间设置cache,总是把主存中被频繁访问的活跃程序块和数据块复制到cache。 cache是为了解决CPU与主存的速度匹配问题设计的 cache机制能够达到目的的根本原因是程序执行时存在访问局部性特点: 时间局部性 被访问单元在一个较短的时间间隔内...

2018-07-14 20:41:55

计算机组成原理的基本知识

计算机组成原理的基本知识计算机的分类个人计算机(personal computer) 用于个人使用的计算机,通常包含图形显示器,键盘和鼠标等 服务器(server) 用于为多用户运行大型程序的计算机,通常由多个用户并行使用,并且一般通过网络访问嵌入式计算机(embedded computer) 嵌入到其他设备中的计算机,一般运行预定义的一个或者一组应用程序 软...

2018-07-14 16:30:42

存储器分类

存储器分类为了缩小存储器与处理器两者之间在性能方面的差距,通常在计算机内部把各种不同容量和不同存取速度的存储器按一定的结构邮寄地组织在一起,以形成层次化的存储器体系结构。 通常存储器的速度越快则容量越小,就越将其靠近CPU。因此,最快的寄存器离ALU最近,然后是在CPU内部的cache,然后是在CPU芯片外的贮存,离CPU再远一点的就是磁盘,最后是海量后备存储器。 常见的存储器的分类如下:...

2018-07-14 15:55:18

求解乘法逆元

求解乘法逆元基本定义记a的关于模p的逆元为a^-1,则a^-1满足aa^-1≡ 1(mod p) 在mod p的运算中,a存在乘法逆元当且仅当a与p互质。一般题目给的是一个大质数,所以只要a不是p的倍数,就以求乘法逆元。例题 代码实现(python)#欧几里得算法求最大公约数def get_gcd(a, b): k = a // b rem...

2018-07-12 10:48:16

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。