自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 inline内联函数

1、什么是内联函数?inline修饰的函数称之为内联函数,内联函数是一种编程语言结构,在编译阶段在函数调用点代码直接展开。2、内联函数如何工作的?对于任何内联函数,编译器在符号表里放入函数的声明(包括名字、参数类型、返回值类型)。如果编译器没有发现内联函数存在错误,那么该函数的代码也被放入符号表里。在调用一个内联函数时,编译器首先检查调用是否正确(进行类型安全检查,或者进行自动类型转换...

2019-08-04 16:23:26 326

原创 将字符串转换为数字(a_to_i)

大部分人看到这样的题目,觉得很简单,很多人就会写出如下程序:int My_atoi(const char* str){ int val = 0; while(*str != '\0') { val = val * 10 + *str - '0'; str++; } return val;}这个程序是没有问题的,但是...

2019-07-22 20:34:35 7682 3

原创 文件传输项目

上传文件项目:实现上传文件,首先要建立客户端与服务器的连接,具体思路是:客户端发送一个命令或带参数的命令,服务器收到以后执行相应的操作,并且将执行结果返回给客户端;这一部分的可以实现ls和ps以及ls –a和ps –f带参数的命令等功能。上传和下载文件的思路:客户端发送上传或下载以及所操作的文件,服务器收到以后判断是上传还是下载,然后判断该文件是否有效,不能上传或下载,返回错误或文件不存在...

2019-06-12 19:59:54 528

原创 如何用UDP实现可靠传输?

1、实现方法:(1)将实现放到应用层,然后类似于TCP,实现确认机制、重传机制和窗口确认机制;(2)给数据包进行编号,按顺序接收并存储,接收端收到数据包后发送确认信息给发送端,发送端接收到确认信息后继续发送,若接收端接收的数据不是期望的顺序编号,则要求重发;(主要解决丢包和包无序的问题)2、已经实现的可靠UDP:(1)RUDP 可靠数据报传输协议;(2)RTP 实时传输协议...

2019-05-16 14:01:15 4002

原创 I/O复用 - select、poll、epoll

1、select:(1)作用:在一段指定时间内,监听用户感兴趣的文件描述符上的可读,可写和异常等事件;(2)函数: int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* execptfds, struct timeval* timeout); nfds:被监...

2019-05-01 15:56:11 248

原创 socket编程相关的函数

1、主机字节序和网络字节序的转换unsigned short int htons(unsigned short int hostshort);(比较常用的之一)将短整型的主机字节序转换为网络字节序数据,htons是host to network short;短整型一般用来转换端口号,长整型一般用来转换IP地址;2、IP地址转换函数in_addr_t inet_addr(cons...

2019-04-17 19:53:39 521

原创 四种强制类型转换

1、static_cast <type_id> (expression)(把expression类型转换为type_id类型)用于类层次结构中基类和派生类之间指针或引用的转换:有上行转换和下行转换; 上行转换:派生类--->基类(安全) 下行转换:基类--->派生类(不安全,没有动态类型检查)用于基本数据类型之间的转换(由开发人员保证...

2019-04-17 00:14:24 1426

原创 指针和数组,指针和引用,new/delete和malloc/free的联系或区别

1、指针和数组(1)数组:是存放一定数量的变量的内存空间;直接输出数组名可以得到数组首元素的地址;数组的元素在内存中是连续存放的(存放在静态存储区或栈上);(2)指针:指针变量是用来存放某种类型的地址的变量;指针很灵活,存储空间不能确定;(3)二者联系:一个数组名可以复制给一个指针,赋值后的指针指向数组的首元素;数组名可以向指针一样运算,Eg:*(arr + 1)...

2019-04-15 21:02:19 420

原创 static关键字

1、static的使用:C语言:局部静态变量,外部静态变量和外部静态函数C++:静态数据成员,静态成员函数2、static修饰变量:具有隐藏的作用,加static后,变量只能在本文件使用;会在程序开始运行时就完成初始化,也是唯一一次初始化,且默认初始化为0;全局变量和static变量存储在静态存储区3、static修饰函数:具有隐藏的作用,加static后,函数只能...

2019-04-14 17:35:07 89

原创 HTTP通信协议---超文本传输协议

1、概念:超文本传输协议,是用于从万维网服务器传输超文本到本地浏览器的传送协议。浏览器作为HTTP客户端通过URL向HTTP服务端即web服务器发送所有请求。2、特点:简单快速、灵活、无连接(每次连接只处理一个请求)、无状态(对于事务处理没有记忆能力)、支持B/S和C/S模式。3、HTTP请求报文包括:请求行、请求头部、空行、请求数据; HTTP响应报文包括:状态行、消息报头...

2019-04-14 00:00:11 867

原创 三次握手和四次挥手

1.三次握手:(1)目的:连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,并交换TCP窗口大小信息;(2)过程:(在socket编程中,客户端执行connect()时进行三次握手)如上图所示,第一握手进行后,客户端处于SYN_SENT状态,客户端的SYN报文服务器收到后,服务器处于LISTEN状态,在服务器端第二次握手进行后,服务器端处于SYN_RECV状态,...

2019-03-17 19:03:38 90

原创 TCP/IP五层协议

1.TCP/IP的五层协议:2.分层的目的:(1)将网络的通信过程划分为小一些、简单一些的部件,有助于各个部件的开发、设计和故障排除;(2)通过网络组件的标准化,允许多个供应商开发,鼓励产业标准化;(3)允许各种类型的网络硬件和软件相互通信;(4)防止某一层的改动影响到其它层,有利于开发(主要)。3.各层的主要协议:(1)应用层:HTTP(超文本传输协议), HTT...

2019-03-17 15:43:54 20289

原创 Typedef与define

    宏定义define只是简单的字符替换,并不会检查错误,如果不小心写错了,它还是会带入程序中,然后在编译时进行错误查找。例如:    #define R 9    int i=R*4;//相当于i=9*4;如果把9写成了g,它还是会带入等式,i=g*4;在编译时就会报错。    类型定义typedef给已有的类型换一个名字,如果写错了系统会自动报错,这一点与宏定义define不同,例...

2018-09-22 00:18:33 137

原创 进制转换的简单运算

常见的进制转换就是十进制、二进制、八进制、十六进制之间的转换,那么如果给你一个等式,让你判断在哪种进制下该等式成立?这类型的题该怎么求解。接下来通过两个例题讲解一下:例1.   如果等式 15*4=112 成立,那么用了下列哪一种进制?         A. 6      B. 7       C. 8        D. 9第一种比较笨的办法就是将选项带入,把15、4、112分别转换,看哪一个成...

2018-06-02 12:16:53 2623

原创 通过调试找出程序的错误

我们在编写程序时,即使再简单,也有可能出现错误,当通过浏览程序检查不出错误时,就需要通过调试找到错误并改正。

2018-05-31 19:50:24 4367

原创 如何逆序输出一个整数

给出一个整数,将它逆序输出,首先求出它是一个几位数,利用for循环将数字从高位到低位分别输出。例如1234这个数,首先通过for循环求出,它是一个4位数,然后1234第一次除以1000,得到1并输出,1234再对1000取余,去掉1得到234,第二次234除以100,得到2并输出,234再对100取余,去掉2得到34,以此类推进行循环,得到的就是4321.下面是该函数的代码实现:void Inve...

2018-05-31 19:08:10 27837 6

原创 指针的应用举例

下面是一个交换a与b之间值的一个程序:#include&lt;stdio.h&gt;void Swap_error1(int a,int b){       int tmp;      tmp=a;      a=b;      b=tmp;     //printf("%d,%d",a,b);//因为打印函数要尽量使用在主函数中,所以我们在主函数进行打印}int main(){     int ...

2018-05-26 20:07:24 1063

原创 指针及指针变量

      指针是C语言中的一个重要概念,也是C语言的一个重要特色,所以学好指针对学好C语言有重要作用。本篇博客就介绍指针和指针变量的相关定义知识。&amp;a就是得到a的地址,其实“指针==地址”,int *p就是定义一个整型地址(指针)变量int a=10;//整型变量存放整型值double b=1.24;//浮点型变量存放浮点型值int *p=&amp;a;//整型地址变量存放整型地址值  ...

2018-05-26 19:40:08 8983

原创 有关C语言的精度问题

      再精准的仪器都会有误差,包括计算机,所以在写程序时要考虑到误差值。通常会在程序开始部分规定一个精度EPS,计算结果在这个误差值正负范围内,则为正确,若超出这个范围,则错误。下面就是一个需要考虑误差的程序例子:求一元二次方程ax^2+bx+c=0的解(分相等实根和不等实根情况)。(1)a=0,则x1=x2=(-c)/b;(2)a不等于0:b^2-4ac&gt;0;有两个不等的实根    ...

2018-05-06 14:59:50 7607

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除