<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CyanWang1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CyanWang1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CyanWang1]]></copyright><item><title><![CDATA[VS2017生成动态库.dll和静态库.lib及其调用]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/102814740</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/102814740</guid><author>CyanWang1</author><pubDate>Wed, 30 Oct 2019 11:09:59 +0800</pubDate><description><![CDATA[VS2017生成动态库.dll和静态库.lib及其调用步骤1.打开VS2017，新建动态链接库（DLL）![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030105606139.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9...]]></description><category></category></item><item><title><![CDATA[[项目]图片服务器]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/100164760</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/100164760</guid><author>CyanWang1</author><pubDate>Sat, 31 Aug 2019 18:33:44 +0800</pubDate><description><![CDATA[目录1. 项目背景2.项目模块划分2.1数据存储模块2.2服务器API3. 总结4. 扩展
1. 项目背景
  现在很多网页都可以见到图片上传功能，我们上传一张本地图片后，网页就会显示我们所上传的图片，比如博客、个人信息提交页面等等。那么这背后的原理是什么呢？
  其实当我们浏览网页的时候，本质上是从对端服务器获取文档，浏览器在获得这些文档之后进行解析和渲染，呈现给我们用户面前的就是绚丽多彩的页面...]]></description><category></category></item><item><title><![CDATA[C++智能指针]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/98743463</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/98743463</guid><author>CyanWang1</author><pubDate>Sun, 11 Aug 2019 18:12:19 +0800</pubDate><description><![CDATA[目录1. 为何需要智能指针2. 智能指针的使用及原理3. C++11和boost中智能指针的关系4. RAII扩展学习
1. 为何需要智能指针
1.1 通过如malloc申请出来的空间，有时候会忘记释放或很难看出是否释放过了，所以会存在内存泄漏的问题。
1.2 异常安全问题。比如在malloc和free之间存在抛异常，那么还是会有内存泄漏。这种问题就叫异常安全。
2. 智能指针的使用及原理
2.1...]]></description><category></category></item><item><title><![CDATA[Linux下socket编程]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/98472716</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/98472716</guid><author>CyanWang1</author><pubDate>Tue, 06 Aug 2019 20:58:11 +0800</pubDate><description><![CDATA[目录1.IP地址, 端口号, 网络字节序等网络编程中基本概念
1.IP地址, 端口号, 网络字节序等网络编程中基本概念
1.1IP地址：（IP协议有两个版本，IPv4和IPv6，本博客凡提到IP协议，默认指IPv4。）
(1)IP地址是在IP协议中，用来标识网络中不同主机的地址；
(2)对于IPv4，IP地址是一个4字节，uint32_t(无符号32位整数，数量不到43亿)的整数；
(3)在网络通...]]></description><category></category></item><item><title><![CDATA[C++多态知识总结]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/97395387</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/97395387</guid><author>CyanWang1</author><pubDate>Tue, 30 Jul 2019 17:17:48 +0800</pubDate><description><![CDATA[前言：本文中的代码及解释都是在vs2017下的x86程序中，涉及的指针都是4bytes。
1.多态概念
1.1概念
多态通俗来说就是多种形态，具体点就是去完成某个行为，当不同的对象去完成时会产生出不同的状态。比如在windows下双击一个文件，如果对象是个可执行文件，则会执行此程序，如果对象是个目录文件，则会打开这个目录。
在C++中，所谓多态性是指：由继承而产生的不同的派生类，其对象对同一消息会...]]></description><category></category></item><item><title><![CDATA[linux第一个小程序---进度条]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/94289511</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/94289511</guid><author>CyanWang1</author><pubDate>Sun, 30 Jun 2019 12:09:09 +0800</pubDate><description><![CDATA[换行(\n)和回车(\r)的区别
&lt;\r&gt;回车(carriage return)：即每次打印完使光标回到最开始位置
&lt;\n&gt;换行(line feed)：换到当前行的下一行，即光标指向下一行最开始的位置
缓冲区概念
缓冲区分为：无缓冲、行缓冲、全缓冲。
无缓冲：表示的是没有缓冲，可以将信息立马显现出来，典型代表是标准错误流stderr。
行缓冲：表示的是输入输出遇到换行才执行...]]></description><category></category></item><item><title><![CDATA[readelf命令]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/94219930</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/94219930</guid><author>CyanWang1</author><pubDate>Sat, 29 Jun 2019 23:33:51 +0800</pubDate><description><![CDATA[ELF（Executable and Linking Format）:在计算机科学中，是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。内核会根据这些信息加载可执行文件，内核根据这些信息可以知道从文件哪里获取代码，从哪里获取初始化数据，在哪里应该加载共享库等信息。
ELF组成格式:
ELF文件由4部分组成，分别是ELF头（ELF header）、程序头表（Program hea...]]></description><category></category></item><item><title><![CDATA[linux常用工具]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/94204930</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/94204930</guid><author>CyanWang1</author><pubDate>Sat, 29 Jun 2019 22:34:11 +0800</pubDate><description><![CDATA[vim
vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富，在程序员中被广泛使用，和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。
vim和Emacs对比:
vim优点:
编辑快速,按键更简洁。
vim缺点:
需要不停地切换模式;
插件环境混乱。
Emacs优点:
Emacs其实是个Lisp的解释器，因此可以用Lisp灵活地扩展。而Lisp是种很...]]></description><category></category></item><item><title><![CDATA[linux基础之权限和根目录下重要子目录]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/90719394</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/90719394</guid><author>CyanWang1</author><pubDate>Wed, 05 Jun 2019 15:48:24 +0800</pubDate><description><![CDATA[linux是什么?linux具有哪些特性?

Linux是一套免费使用和自由传播的类Unix操作系统，是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想，是一个性能稳定的多用户网络操作系统。------“科普中国”科学百科词条编写与应用工作项目
...]]></description><category></category></item><item><title><![CDATA[数据结构-栈和队列]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/90717045</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/90717045</guid><author>CyanWang1</author><pubDate>Fri, 31 May 2019 15:27:29 +0800</pubDate><description><![CDATA[什么是栈，栈有什么特性？
栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作.进行数据插入和删除的一端称为栈顶,另一端称为栈底.栈中元素遵守后进先出的原则LIFO(Last in First Out).
压栈:栈的插入操作称为进栈/压栈/入栈,入数据在栈顶.
出栈:栈的删除操作叫做出栈,出数据也在栈顶.

栈和程序运行时的栈区有什么区别？
数据结构中的栈:栈（stack）又名堆栈，它...]]></description><category></category></item><item><title><![CDATA[C语言知识点思维导图(待补充)]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/90713932</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/90713932</guid><author>CyanWang1</author><pubDate>Fri, 31 May 2019 12:06:03 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[数据结构-线性结构之链表]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/90349289</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/90349289</guid><author>CyanWang1</author><pubDate>Sun, 19 May 2019 22:40:37 +0800</pubDate><description><![CDATA[什么是链表，链表有哪些分类？
链表是一种物理存储结构上非连续、非顺序的存储结构，数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

实际中的链表结构非常多样，通过单向、双向，带头、不带头，循环、非循环组合起来有8中链表结构：

但实际中最常用的还是无头单向非循环链表和带头双向循环链表。
链表带头结点和不带头结点的区别？
不带头结点：此时头指针指向第一个节点

带头结点：此时头指针指向头结点

...]]></description><category></category></item><item><title><![CDATA[数据结构-线性结构之顺序表]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/90247051</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/90247051</guid><author>CyanWang1</author><pubDate>Wed, 15 May 2019 22:56:14 +0800</pubDate><description><![CDATA[什么是线性结构?
线性结构的定义是一个有序数据元素的集合。简单地说，线性结构是n个数据元素的有序（次序）集合。
那么线性结构中都包含什么内容？
常见的线性结构有：顺序表，链表，栈，队列，字符串。
什么是顺序表？顺序表的分类？
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构，一般采用数组存储。通过数组完成数据的增删改查。
顺序表通过数据的存储形式分为静态顺序表和动态顺序表，采用定长数...]]></description><category></category></item><item><title><![CDATA[数据结构-数据结构前言总结]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/89848435</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/89848435</guid><author>CyanWang1</author><pubDate>Sun, 05 May 2019 16:24:41 +0800</pubDate><description><![CDATA[什么是数据结构?
学习数据结构首先要理解什么叫做数据结构。数据结构可以拆分为数据加结构，数据可以理解为未经加工的信息，结构可以理解为组织关系，所以数据结构可以简单理解为数据与数据之间的组织关系。
什么是算法?
算法可以简单理解为一系列的计算步骤，将输入数据转化为输出结果。
那么如何衡量一个算法的好坏？
衡量一个算法的好坏我们可以通过把它带入实际的工作环境中，想象一下我们现在刚毕业进入公司工作是一个...]]></description><category></category></item><item><title><![CDATA[C语言通讯录动态内存的版本]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/89556584</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/89556584</guid><author>CyanWang1</author><pubDate>Fri, 26 Apr 2019 16:47:34 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;

typedef struct ContactsInfo {
	char name[1024];
	char phonenum[1024];
}ContactsInfo;

type...]]></description><category></category></item><item><title><![CDATA[C语言实现一个通讯录]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/89472642</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/89472642</guid><author>CyanWang1</author><pubDate>Tue, 23 Apr 2019 14:53:01 +0800</pubDate><description><![CDATA[要求
通讯录可以用来存储1000个人的信息，每个人的信息包括：
姓名、性别、年龄、电话、住址
提供方法：

添加联系人信息
删除指定联系人信息
查找指定联系人信息
修改指定联系人信息
显示所有联系人信息
清空所有联系人
以名字排序所有联系人
保存联系人到文件
加载联系人

#define _CRT_SECURE_NO_WARNINGS
#include &lt;stdio.h&gt;
#inclu...]]></description><category></category></item><item><title><![CDATA[C语言中自定义类型部分知识总结]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/89462876</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/89462876</guid><author>CyanWang1</author><pubDate>Tue, 23 Apr 2019 14:33:13 +0800</pubDate><description><![CDATA[什么是自定义类型?
所谓自定义类型，就是除去基本类型，用户可以自己定义的一些类型，一般自定义类型包含三种：结构体、枚举、联合。
结构体
结构是一些值的集合，这些值称为成员变量。结构的每个成员可以是不同类型的变量。
如:
struct Student//类型声明
{
char name[1024];//名字
int age;//年龄
char sex[1024];//性别
char id[1024]...]]></description><category></category></item><item><title><![CDATA[C语言练习7]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/89403665</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/89403665</guid><author>CyanWang1</author><pubDate>Fri, 19 Apr 2019 16:49:22 +0800</pubDate><description><![CDATA[1.实现strcpy
#define _CRT_SECURE_NO_WARNINGS
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;assert.h&gt;
char* Strcpy(char* dest, const char* src) {
	assert(de...]]></description><category></category></item><item><title><![CDATA[扫雷游戏练习]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/89042218</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/89042218</guid><author>CyanWang1</author><pubDate>Fri, 05 Apr 2019 12:48:39 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;time.h&gt;
#define MAX_ROW 9
#define MAX_COL 9
#define MINE_COUNT 10

int Menu() {
	printf("============...]]></description><category></category></item><item><title><![CDATA[井字棋练习]]></title><link>https://blog.youkuaiyun.com/CyanWang1/article/details/89022618</link><guid>https://blog.youkuaiyun.com/CyanWang1/article/details/89022618</guid><author>CyanWang1</author><pubDate>Thu, 04 Apr 2019 14:51:56 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;time.h&gt;
#define MAX_ROW 3
#define MAX_COL 3

int Menu() {
	printf("====================\n");
	printf(...]]></description><category></category></item></channel></rss>