- 博客(17)
- 资源 (16)
- 收藏
- 关注
原创 c++优先队列(priority_queue)用法详解
绝对好文,转载自:https://blog.csdn.net/weixin_36888577/article/details/79937886目录一、基本类型例子:二、pair类型三、自定义类型四、常见问题既然是队列那么先要包含头文件#include <queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的。和
2021-07-30 22:48:48 1387
原创 “悬空指针”和“野指针”究竟是什么意思?有什么区别
提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再熬述了,今天我们想跟大家讲的是指针中的两个特有名词:“悬空指针”和“野指针”。悬空指针C语言中的指针可以指向一块内存,如果这块内存裆后被操作系统回收(被释放),但是指针仍然指向这块内存,那么,此时该指针就是“悬空指针”。下面这段C语言代码是一个例子请看void *p =malloc(size); assert (p);free(p);//现在p是“悬空指针C语言中的“悬空指针”会引发不可预知的错误
2021-07-30 16:34:19 930
原创 内核态与用户态的区别
原文链接:https://www.cnblogs.com/gizing/p/10925286.html1.操作系统需要两种CPU状态内核态(Kernel Mode):运行操作系统程序,操作硬件用户态(User Mode):运行用户程序2.指令划分特权指令:只能由操作系统使用、用户程序不能使用的指令。 举例:启动I/O 内存清零 修改程序状态字 设置时钟 允许/禁止终端 停机非特权指令:用户程序可以使用的指令。 举例:控制转移 算数运算 取数指令访管指令(使用户程序从用户态陷入内核态.
2021-07-30 11:23:22 183
原创 使用C语言实现多态
目录一、C++的三大特性为:继承,多态,封装1.1 继承1.2 多态1.3 封装二、用C语言实验多态2.1 多态的主要特点2.2 代码实现2.2.1 C++中的继承与多态2.2.2C语言实现C++的继承与多态一、C++的三大特性为:继承,多态,封装1.1 继承一个对象直接使用另一个对象的属性和方法。优点:减少重复的代码。 继承是多态的前提。 继承增加了类的耦合性。 缺点:继承在编译时刻就定义了,无法在运行时刻改变父类继承的实现; 父...
2021-07-30 11:03:47 2720 1
原创 详解 TCP 和 UDP
本篇文章转载自公众号:网络技术平台https://mp.weixin.qq.com/s/8iyxF1tT3JhyHKdyeF1uAg目录一、概述二、初始传输层2.1 TCP2.2 UDP2.3 TCP 和 UDP 的区别三、端口号3.1 标准端口号3.2时序分配法四、UDP五、TCP5.1 TCP特点5.2 连接5.3 序列号和确认应答5.4 超时重发5.5 连接管理5.6 三次握手5.7 四次挥手5.8 单位段5.9 ..
2021-07-28 13:46:09 2499 1
原创 基于socket网络编程技术实现TCP和UDP的流程详解及实例
具体函数讲解太多,根据程序自行分析。可以参考这篇文章:https://blog.csdn.net/qq_41687938/article/details/119102328?spm=1001.2014.3001.5501https://blog.csdn.net/weixin_42193813/article/details/105666316一、socket1.1 socket概述socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用
2021-07-28 11:50:12 12797
原创 详解const和#define
一、const 与#define的区别(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译、运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开,存在边界的错误。 const常量有具体的类型,在编译阶段会执行类型检查。(3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存,它定义的宏常量在内存中有若干个备份,占用代码段空间。 const常量在程序...
2021-07-27 21:49:31 1094
原创 Linux系统proc详解
原文链接:https://www.cnblogs.com/liushui-sky/p/9354536.html目录一、 进程目录中的常见文件介绍1.1 cmdline1.2、cwd1.3、environ1.4、exe1.5、fd1.6、limits1.7、maps1.8、mem1.9、root1.10、stat1.11、statm1.12、status1.13、task二、/proc目录下常见的文件介绍2.1、/pro...
2021-07-27 20:48:49 4671
原创 C和C++里的const常量、volatile修饰符的深层次说明
一、写在前面1. 由于涉及到编译器层面,所以不同编译器结果可能不一样。本文使用的VS编译器。2. 针对const修饰的整型常量:const int local = 10;3. 常量本质上也是一个变量,是变量就会有地址;因为直接修改const常量是不允许的(编译就会报错),所以只能通过指针修改其地址上的值来试验。如下:这里注意下,用vs复制一个文件到另一个文件运行(比如这里程序都是一样的,一个在c运行,一个在cpp运行,复制过去不清理解决方案,运行的其实还是上一个程序),但是编译.
2021-07-26 14:47:03 400
原创 TCP/UDP中sockaddr和sockaddr_in的区别及用法
目录一、先看两个结构体的定义1.1sockaddr1.2 sockaddr_in二、sockaddr与sockaddr_in的相同点和区别2.1 相同点2.2 区别三、使用方法3.1 socket编程中sockaddr和sockaddr_in的强制转换3.2 补充部分struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。网络中的地址包含3个方面.
2021-07-26 09:58:51 3318
原创 malloc 不能返回动态内存
关于malloc的理解:#include <stdio.h>#include <stdlib.h>void getmemory(char *p){ p=(char *) malloc(100); strcpy(p,"hello world");}int main( ){ char *str=NULL; getmemory(str); printf("%s/n",str); free(str); return 0;}程序崩溃,getm
2021-07-14 15:24:09 920
原创 32和64位系统各内置类型所占字节大小(int char long double 指针等)
指针大小不一样主要原因在于:32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器32/64位操作系统,数据类型字节数对比32/64位操作系统,数据类型字节数对比 32位 64位 char 1 1 char* 4 8 short int 2 2 int 4 大多数4,少部分8 unsigned int 4 4 float 4 4 double 8
2021-07-13 11:29:31 3053
原创 求某类型变量的大小(是否使用sizeof)
sizeof与strlenstrlen("\0") =? sizeof("\0")=?strlen("\0") =0,sizeof("\0")=2。strlen用来计算字符串的长度(在C/C++中,字符串是以"\0"作为结束符的),它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描直到碰到第一个字符串结束符\0为止,然后返回计数器值sizeof是C语言的关键字,它以字节的形式给出了其操作数的存储大小,操作数可以是一个表达式或括在括号内的类型名,操作数的存.
2021-07-13 10:54:18 224
原创 一文解决new/delete与malloc/free相关问题:区别?注意事项?使用方式?
目录一、内存分配模型1.1 先看内存的分布状况1.2动态内存分配1.3 C语言中分配内存的方式1.4 C++中动态分配内存的方式二、new和malloc的区别2.1 属性2.2 参数2.3 返回类型2.4分配失败2.5 自定义类型2.6 重载2.7 内存区域2.8分配内存时内存不足2.9new与malloc是否可以相互调用三、与new、malloc相关的问题解答3.1 为什么有了malloc/free为什么还要new/delete...
2021-07-02 19:58:16 624
原创 C/C++常见库函数实现(memcpy、memset、 strcpy)
目录1.void *mymemcpy(void *dest, const void* src, size_t n);2.void *memset(void *s, int c, size_t n);3.char* strcpy(char* dest,const char* src);4.char* mystrncpy(char* dest,char* src,size_t n);5.char* strcat(char* dest,const char* src)6.int ...
2021-07-02 17:30:16 304
原创 实现strcpy的几种操作 与 strcpy为什么有返回值
目录总结:下面给出网上strcpy的得分版本:strcpy函数返回值有神马作用?总结:1.输入参数src加上const2.考虑输入指针的合法性3.考虑返回值一个标准的strcpy函数:strcpy是C++语言的一个标准函数,strcpy把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*。下面给出网上strcpy的得分版本:2分void strcpy( char *strDest, char *strSrc ){while...
2021-07-02 17:10:51 2685
原创 断言(assert)详解
一、assert定义我一直以为 assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错"。在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个 if 语句:if(假设成立){ 程序正常运行;}else{ 报错&&终止程序!(避免由程序运行引起更大的错误) }但是这样写的话,就会有无
2021-07-02 16:21:27 14084 1
Ti DSP6678最全技术手册和资料整理(用户开发手册和官方技术文档).zip
2020-09-16
MFC运行需要的一些dll文件(MFCO42D.dll ,MSVCP60D.DLL,MSVCRTD).zip
2020-05-29
DSP6678的NDK通信程序与教程
2019-10-04
OFDM完整仿真过程与教程.zip
2019-10-04
遗传算法完整MATLAB程序(实数法,覆盖法)
2018-11-12
遗传算法完整MATLAB程序(实数法,轮盘赌法)
2018-11-12
遗传算法完整MATLAB程序(编码,轮盘赌法)
2018-11-12
遗传算法完整MATLAB程序(覆盖法)
2018-11-12
遗传算法完整MATLAB程序
2018-11-12
十分详细的数字通信系统之8PSK调制
2018-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人