自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魏波-CSDN认证博客专家

魏波-CSDN认证博客专家,全国总排名306,文章总访问量超500万。个人邮箱1095528269@qq.com

  • 博客(66)
  • 资源 (5)
  • 论坛 (1)
  • 收藏
  • 关注

翻译 实时摄像头数据传输丢包问题

                              实时摄像头数据传输丢包问题做一个实时摄像头数据传输的项目,服务器可以向客户端的多个端口发送数据。问题:如果服务器只向一个端口发送数据,客户端只接受一个端口的数据,那么数据传输没问题。但是如果服务器向客户端的多个端口发送数据,而客户端之接收一个端口的数据,这时就会有丢包的现象。是什么原因?如何解决?解决方法:方法一:多线...

2018-09-29 17:10:06 2555

翻译 C 库函数 - strftime()

                                       C 库函数 - strftime()C标准库<time.h>描述C 库函数 size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 根据 format 中定义的格式化规则,格式...

2018-09-30 19:56:22 429

翻译 为什么socket接收大数据的时候接收不完全,出现丢包?

                      为什么socket接收大数据的时候接收不完全,出现丢包?(1)TCP协议通信,接收方接收数据的前后次序与发送方一致,但数据包不一定一致。打个比方,发送方按顺序发送了2个数据包,接收可能仅接收1次就能全部收到,也可能需要收2次才能收到,也可能收3次,每次收到的数据大小不一定和发送方发送的数据包大小一样,但最终收到的总数据是一致的。(2)从你的程序...

2018-09-29 16:57:58 4150

翻译 访问一个网页的全过程详解!

                         访问一个网页的全过程详解!打开一个网页的过程中,浏览器会因页面上的css/js/image等静态资源会多次发起连接请求,所以我们暂且把这个网页加载过程分成两部分:(1)html(jsp/php/aspx) 页面加载(假设存在简单的Nginx负载均衡)(2)css/js/image等 网页静态资源加载(假设使用CDN)一:整体流程图...

2018-09-29 16:35:21 13592 1

翻译 linux中lsof命令详解!

                           linux lsof命令详解(1)简介:lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无...

2018-09-29 10:48:15 520

翻译 netstat 命令详解

                                          netstat 命令详解netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。语法选项netstat [选项]-a或--all:显示所有连线中的Socket; -A<网络类型>或--<网络类型>:列出...

2018-09-29 10:36:51 362

原创 在下列选项中,没有构成死循环的程序的是?

在下列选项中,没有构成死循环的程序段是_____。A. int i=100;while(1)i=i%100+1;if(i>100)  break;B.for(;;);C.int k=1000;do  ++k;while(k>=1000);D.int s=36:while(s);--s;答案:CA 选项i=i%100+1 所以i>100不会成立,就不...

2018-09-26 21:48:37 2527

翻译 C语言中数据的输出格式有哪些?

                           C语言中数据的输出格式有哪些?(1)d(或i)格式符。用来输出十进制整数,有以下几种用法:①%d,按整型数据的实际长度输出。②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。③%ld(%mld 也可),输出长整型数据。例如:long a=123456;printf("%ld",...

2018-09-26 21:28:22 6826 1

翻译 C语言以下4个选项中,不能看作一条语句的是?

C语言以下4个选项中,不能看作一条语句的是?A.{;} B.a=0,b=0,c=0; C.if(a>0); D.if(b==0)m=1;n=2答案:ADA,A这样 {;} 就相当于 ; (一个隔开符号而已 而不是语句),就如 while(1); 和 while(1) {;}是一样的。D,因为m=1;n=2之间有个分号,应该是两条语句。...

2018-09-26 21:19:52 5780 3

翻译 能将高级语言编写的源程序转换为目标程序的是编译程序!

能将高级语言编写的源程序转换为目标程序的是什么?A)链接程序B)解释程序C)编译程序D)编辑程序答案:D 把源程序转换为目标程序的过程叫编译。所以能将高级语言编写的源程序转换为目标程序的是相应的高级语言编译程序。拓展资料:编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现...

2018-09-26 21:12:56 11403 2

原创 数据结构完整性是指数据的正确性、有效性、相容性!

数据的完整性是指数据的正确性、有效性和______。A.可维护性B.独立性C.安全性D.相容性答案:D[评析] 数据模型的完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。...

2018-09-26 21:08:06 5400

翻译 下列不是c++ 标准数据类型得是?

例子:下面哪一个不是C++的标准类型?A:int      B:char      C:bool     D:real答案:D (1)int 类型与操作系统,编译器相关如:win32下为32位,win64下为64位如果软件有移植需求,请使用固定大小的数据类型(2)long 的字节数是不随平台改变的,都是4字节补充:BYTE 1字节 typedef unsigne...

2018-09-26 20:45:46 565

翻译 编写一个自己的完全C语言版本的memset函数,并且评价这个实现的性能和可移植性。

编写一个自己的完全C语言版本的memset函数,并且评价这个实现的性能和可移植性。    memset这个函数的作用大致可以理解为将从指针指向的地址开始的指定字节长度的空间全部替换为指定的值。那么我们可以很轻松的用C来自己实现这个函数:void *memset(void *position,void value,unsigned int count){   void *head=...

2018-09-25 10:07:22 163

翻译 指针和数组的区别是什么?

                                  指针和数组的区别是什么?其实数组是一个地址,指针则是指向地址的地址。举个例子:char array[10];char *pt;pt=array;char array[10];的含义是,在内存里开辟一个10个字节的空间用来存放数据,其中array是这个空间的头地址,正如刚才所说,数组是一个地址。    cha...

2018-09-25 09:22:40 253

翻译 C语言的左值(lvalue)和右值(rvalue)的含义是什么?

                  C语言的左值(lvalue)和右值(rvalue)的含义是什么?(1)左值就是一个可被存储的单元,右值就是一个可被读取的数据。    (2)左值必须是一个被明确了的内存存储单元,可以用来被赋值;右值必须是一个能被读出来的确确实实的值,这个值可以是数据,可以是指针,可以是结构,反正只要能被读出来的,都可以定义为右值。...

2018-09-25 09:22:30 4372

翻译 说明使用assert和防错代码的区别

                     说明使用assert和防错代码的区别说到防错代码,我第一联想到的是#ifdef、#ifndef、#else、#endif之类的在预处理阶段的一些宏和一些条件判断。而assert函数则是在程序中使用的宏(注意,其实assert是一个宏)。(1)在使用防错代码时,一般判断为假的时候可以使用一些语句继续调试,而使用assert后,当判断为假貌似就直接结束程...

2018-09-25 09:22:22 245

翻译 下面r的值是多少?

例子:下面r的值是多少?int hi, low, r;hi=7;low=3;r=hi<<4+low;位运算的级别是低于算术运算的,所以r=hi<<4+low;就变成了r=hi<<(4+low);把数带进去就是r=7<<7;意思是把7左移7位,r=896。...

2018-09-24 16:29:26 1171

原创 关于C语言运算符优先级的记忆技巧是什么?

                关于C语言运算符优先级的记忆技巧是什么?(1)先(括号)内层,后(括号)外层。(2)先函数,后运算。(3)先算术,后关系,再逻辑。(4)先乘除,后加减。(5)先左,后右。(6)搞不清,加括号。...

2018-09-24 16:24:45 705

翻译 下面中???该如何填写,才可以正确执行强制类型转换? int (*monthp)[31]; monthp = (???)malloc(31);

例子:下面中???该如何填写,才可以正确执行强制类型转换?  int (*monthp)[31]; monthp = (???)malloc(31);在这里int (*monthp)[31];是一个套,代表定义一个指向有31个整型数的数组的指针,我们如果把这个数组看成一个连续的内存区域,那么(*monthp)[31]原则上和*s没有什么区别,区别只是类型,如果只是强制类型转换,month...

2018-09-24 16:23:45 216

翻译 代码的两种命名方法:驼峰命名、匈牙利命名(优缺点)

          代码的两种命名方法:驼峰命名、匈牙利命名(优缺点)一、骆驼命名法:  小驼峰法(camel方法)变量一般用小驼峰法标识。  第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirstName、myLastName  大驼峰法(Upper Camel Case)也称为:帕斯卡命名法:(pascal方法)常用于类名...

2018-09-24 15:45:32 39548

翻译 在定义常量时,为什么推荐使用const,而不是#define?

         在定义常量时,为什么推荐使用const,而不是#define?const修饰词可以将一个变量修饰为“只读”,这个就能称为常量么?姑且认为可以。const是只读的意思,它限定一个变量不允许被改变,谁都不能改!既然是修饰变量,那么变量的类型就可以丰富多彩,int啊,char啊,只要C认识的都可以;(1)但是#define就不可以了,在预处理阶段缺乏类型检测机制,有可能会出...

2018-09-24 12:17:53 2024

翻译 如何让局部变量具有全局生命期

                                  如何让局部变量具有全局生命期用static修饰就可以了,但是只是生命期延长,范围并没有扩大(除非把这个变量定义在函数体外的静态区,不过那样就变成全局变量了,仿佛不符合题目要求)...

2018-09-24 12:12:34 500

原创 C语言的词法分析在长度规则方面采用的是什么策略?

       C语言的词法分析在长度规则方面采用的是什么策略?(1) 按最长匹配原则确定被选的词型(2) 如果一个字符串能为若干个词型匹配,则排列在最前面的词型被选中...

2018-09-24 12:10:34 176

原创 gets函数在使用上要注意什么问题

                                       gets函数在使用上要注意什么问题这是一个键盘输入函数,将输入字符串的头地址返回。需要注意的是:(1)gets以输入回车结束(2)当你输入完一个字符串后,这个字符串可能依然存在于这个标准输入流之中,当再次使用gets的时候,也许会把上次输入的东西读出来,所以应该在使用之后用fflush(stdin);处理...

2018-09-24 12:08:32 1967

翻译 realloc函数在使用上要注意什么问题

                         realloc函数在使用上要注意什么问题这个函数的作用是重新分配空间大小,返回的头指针不变,只是改变空间大小。既然是改变,就有变大、变小和为什么改变的问题。变大,要注意不能大到内存溢出;变小,那变小的那部分空间会被征用,原有数据不再存在;为什么改变,如果是想重新挪作他用,还是先 free了吧。...

2018-09-24 11:16:32 695

原创 使用malloc之前需要做什么准备工作。

             使用malloc之前需要做什么准备工作!malloc的用途是动态的分配一段空间,返回这段空间的头指针。(1)首先判断分配的这段空间的指针是否存在。若指针已经存在,那么在重新将新的空间头地址赋值给这个指针之前,要先判断指针是否为NULL,如果不是要free一下,否则原来的空间就会被浪费,或者出错。若不存在,则定义一个指针用来被赋值.(2)还要清楚要返回一个什...

2018-09-24 10:36:48 678

转载 指针数组的初始化!

const char *strings[7] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; 这是声明时初始化的清况,如果先声明,在初始化呢?我想当然的写成:const char *strings[7]; strings = {"Sund

2018-09-23 22:08:54 19312 1

原创 如何在C中为一个数组分配空间?

                            如何在C中为一个数组分配空间最简单的方法是:char array[5]//分配给数组array一个5个字节的空间。但是我们要知道在C中数组其实就是一个名字,其实质含义就是指针,比如char array[]:是到底分配的多少空间,所以我们要将其分成为两种不同的形式给出答案:第一种是栈的形式:char array[5]...

2018-09-23 21:53:32 4869

原创 C语言中字符数组的初始化与赋值,字符串相关函数!

           C语言中字符数组的初始化与赋值,字符串相关函数!1.字符数组初始化在C语言中,字符串是当做字符数组来处理的;所以字符串有两种声明方式,一种是字符数组,一种是字符指针。(1)直接逐个初始化字符数组:字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p'...

2018-09-23 20:56:37 51662 1

原创 为什么在64位系统中指针的大小是8,而32位系统中却是4?

为什么在64位系统中指针的大小是8,而32位的却是4? 64位系统,这个位数指的是CPU 里面的通用寄存器的数据宽度为64位,也就是说一个地址占二进制位数是64,所以:sizeof(double *)==sizeof(int *)==sizeof(char *)==64/8==8 32位系统,同理,他的一个地址占32位二进制空间,sizeof(double *)==sizeof(i...

2018-09-23 18:08:09 8636 1

翻译 GetMemeory(char *p);GetMemeory(char **p);char* GetMemeory()用法!

void GetMemeory(char *p){    p=(char*)malloc(100);            } void main(){    char *str=NULL;    GetMemory(str);    strcpy(str,"hello world");    printf(str);}以上这段代码运行会直接崩溃,虽然在函数内部分配了内...

2018-09-23 17:24:14 281

原创 C语言中sizeof与strlen的区别总结!

C语言中sizeof与strlen区别总结!先上一个例子:结果:一、sizeof与strlenchar c[] = “abc\0cba”;问题1:sizeof(c) = ?问题2:strlen(c) = ?问题3:执行free(c);之后会有什么后果?解答1:8解答2:3 (判断字符串a的长度,这个长度不包括"\0"...

2018-09-23 16:35:11 895 1

翻译 #define与typedef的区别!

                                   #define与typedef的区别!#define dPS struct s *typedef struct s * tPS;以上两种情况的意图都是要定义 dPS 和 tPS 作为一个指向结构 s 指针。哪种方法更好呢?(如果有的话)为什么?答案是:typedef 更好。思考下面的例子:dPS p1,p2;...

2018-09-23 16:25:31 249

翻译 ptr = (char *)malloc(0)

char  *ptr;if ((ptr = (char *)malloc(0)) == NULL)      puts( "Got   a   null   pointer "); else  puts( "Got   a   valid   pointer "); 上面程序在VC6.0下输出结果是:Got a valid  pointer 请问指针为NULL时指向哪里,分...

2018-09-23 16:02:57 1597

翻译 C 关于unsigned int compzero = ~0;与unsigned int compzero = 0xFFFF; 的区别!

C 关于unsigned int compzero = ~0;与unsigned int compzero = 0xFFFF; 的区别!unsigned int zero = 0; unsigned int compzero = 0xFFFF; 对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下:unsigned int compzero = ~0;  ...

2018-09-23 15:35:05 2050

原创 位操作基础篇之位操作全面总结

位操作基础篇之位操作全面总结https://blog.csdn.net/weibo1230123/article/details/82632380https://blog.csdn.net/hk_john/article/details/70231705给定一个整型变量a,写两段代码,第一个设置a的 bit 3,第二个清除a的bit 3。在以上两个操作中,要保持其它位不变。i...

2018-09-22 21:26:20 91

翻译 编译时“-nostdlib”的使用

原文转载于:《ARM-LINUX-GCC -NOSTDLIB》http://blog.chinaunix.net/uid-26739173-id-3154722.html在韦东山的mmu实验的 Makefile 中出现: arm-linux-ld: firtst has both ordered [`.ARM.exidx' in init.o] and unordered [`.ARM...

2018-09-22 19:37:55 3921 1

转载 单链表的建立和打印

#include <stdio.h>#include <stdlib.h>//定义链表数据结构struct node { int num; struct node *next;};//函数声明struct node *creat(struct node *);void print(struct node *);void main()...

2018-09-20 11:20:18 950

翻译 堆和栈的区别超详解!

堆和栈的区别超详解!2.1申请方式 stack: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间 heap: 需要程序员自己申请,并指明大小,在c中malloc函数 如p1 = (char *)malloc(10); 在C++中用new运算符 如p2 = (char *)malloc(10); 但是注意p1、p2本身是在栈中的。 ...

2018-09-20 10:59:17 119

翻译 写出程序删除链表中的所有接点

void del_all(node *head){ node *p; while(head!=NULL) { p=head->next; free(head); head=p; } cout<<"释放空间成功!"<<endl;} 

2018-09-20 10:30:56 2217

Lua源代码分析顺序

Lua源代码分析顺序

2019-04-11

Memcached源码分析之内存管理

Memcached源码分析之内存管理Memcached源码分析之内存管理

2019-04-11

extern()和 flock()函数

extern()和 flock()函数extern()和 flock()函数

2019-04-11

cJSON是C语言中的一个JSON编解码器

cJSON是C语言中的一个JSON编解码器cJSON是C语言中的一个JSON编解码器

2019-04-11

coreutils 的所有代码链接

coreutils 的所有代码链接coreutils 的所有代码链接coreutils 的所有代码链接

2019-04-11

魏波-的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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