自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(225)
  • 资源 (2)
  • 收藏
  • 关注

原创 嵌入式C++开发详解(一)

嵌入式C++开发详解(一)一、C++概述1.嵌入式开发中为什么选择C++语言?(1)面向过程编程的特点 C语言特点:C语言是在实践的过程中逐步完善的 ·没有深思熟虑的设计过程 ·使用时存在很多“灰色地带” …… ·残留量过多低级语言的特征 ·直接利用指针进行内存操作

2017-02-07 00:03:21 15497

原创 嵌入式C语言实战开发详解(一)

一、概述1、嵌入式开发中为什么选择C语言?因为操作系统的内核都是使用的C语言,而且C语言也有如下几个优点:(1)出色的移植性,能在多种不同体系结构的软/硬平台上运行(修改量越小,移植性越好);(2)简洁紧凑,使用灵活的语法机制,并能直接访问硬件(效率高);(3)很高的运行效率

2016-07-10 23:26:21 9090

原创 C#路径选择及Excel读写操作

C#路径选择及Excel读写操作最近由于工作需要接触了一下C#对于Excel的操作,来记录一下代码,如有更好的方式希望能够交流一下!using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;us

2017-11-26 20:26:35 3851

原创 [玩转算法]滑动窗口

209.Minimum Size Subarray Sum给定一个整型数组和一个数字s,找到数组中最短的一个连续子数组使得连续子数组的数字和sum >= s,返回这个最短的连续子数组的返回值。·如,给定数组[2,3,1,2,4,3],s = 7·答案为[4,3],返回2暴力解:遍历所有的连续子数组[i,j]计算其和sum,验证sum=s;时间复杂度O(n^3)什么方法时间复杂度可以优化为O(n^2)3.Longest Substring Without Repeating Charac

2017-08-14 14:15:04 1136

原创 [玩转算法]对撞指针

167 Two Sum II - Input array is sorted给定一个有序整型数组和一个整数target,在其中寻找两个元素,使其和为target。返回这两个数的索引。-如numbers = [2,7,11,15],target = 9;-返回数字2,7的索引1,2(索引从1开始计算)-如果没有解怎么样?保证有解-如果有多个解怎样?返回任意解125.Valid Palindrome给定一个字符串,只看其中的数字和字母,忽略大小写,判断这个字符串是否为回文串?·“A man,

2017-08-12 15:05:02 2192

原创 [玩转算法]基础算法思路的应用

基础算法思路的应用75.Sort Colors给定一个有n个元素的数组,数组中元素的取值只有0,1,2三种可能。为这个数组排序。·可以使用任意一种排序算法·没有使用上题目给出的特殊条件计数排序:分别统计0,1,2的元素的个数88.Merge Sorted Array给定两个有序的整型数组nums1,nums2,将nums2的元素归并到nums1中215.Kth Largest Element in an Array在一个整数序列中寻找第k大的元素如给定数组[3,2,1,5,6,4],

2017-08-10 18:57:29 672

原创 [玩转算法]数组问题

排序:选择排序;插入排序;归并排序;快速排序查找:二分查找法数据结构:栈;队列;堆…… 如何写出正确的程序明确变量的含义循环不变量小数据量调试大数据量测试 leetcode283.Move Zeros问题给定一个数组nums,写一个函数,将函数中所有的0挪到数组的末尾,而维持其他非0元素的相对位置.举例:nums = [0,1,0,3,12],函数运行后结果为[1,3,12,0,0]Remove Element给定一个数组nums和一个数值val,将数组中所有等于val的元

2017-08-10 14:52:52 586

原创 [Linux C编程]网络通信

简述TCP/IP各层的作用(1)网络接口层(Network Interface Layer):网络接口层是TCP/IP协议软件的最底层,负责将二进制流转换为数据帧,并进行数据帧的发送和接收。数据帧是网络传输的基本单元(2)网络层(Internet Layer)网络层负责在主机之间的通信中选择数据报的传输路径,即路由。当网络层接收到传输层的请求后,传输某个具有目的地址信息的分组。该层把分组封装在IP数据报中,填入数据报的首部,使用路由算法来确定是直接交付数据报,还是把它传递给路由器,然后把数据报交给适当的

2017-08-08 15:08:18 4561 2

原创 [Linux C编程]数据库

1.有哪些常用的数据库,请分别介绍一下。目前有许多数据库产品,如Oracle、SQL Server、DB2、MySQL 、Access,SQLite3等产品各以自己特有的功能,在数据库市场上占有一席之地。(1)Oracle是1983年推出的世界上第一个开放式商品化关系型数据库管理系统。它采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象存储的数据支持,具有第四代语言开发工具,支持Unix、Windows NT、OS/2、Novell等多种平台。除此之外,它还具有很好的并行处理功能。Oracl

2017-08-08 14:59:11 941

原创 [Linux C编程]多线程

1.进程与线程的区别:1)进程是程序的一次执行,是资源分配的最小单位,线程可以理解为进程中执行的一段程序片段,是CPU调度的最小单位;2)进程间是独立的,一个程序崩溃后,在保护模式下不会对其他进程产生影响。同一进程所产生的线程共享同一内存空间,一个线程挂掉会导致整个进程挂掉;3)同一进程中两段代码不能同时执行,除非引入线程;、线程所占用的资源要少于进程所占用资源;4)进程间可以通过IPC通信,但线程不可以。

2017-08-08 14:55:13 465

原创 [Linux C编程]进程间通信

1.管道有什么特点?管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据。数据被一个进程读出后,将被从管道中删除,其它读进程将不能再读到这些数据。管道提供了简单的流控制机制,进程试图读空管道时,进程将阻塞。同样,管道已经满时,进程再试图向管道写入数据,进程将阻塞2.无名管道与有名管道的区别?无名管道:用于父进程和子进程间的通信有名管道:用于运行同一系统中的任意两个进程间的通信。

2017-08-08 14:52:06 793

原创 [Linux C编程]进程控制

1.什么是进程?进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元2.进程与程序的区别?·程序是放到磁盘的可执行文件进程是指程序执行的实例·进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁 移;而程序通常对应着文件、静态和可以复制。·进程是暂时的,程序是长久的:进程是一个状态变化的过程,程序可长久保存。·进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)·进程与程序的对应关系:通过多次执行,一个程

2017-08-08 14:47:05 530

原创 [Linux C编程]文件操作

1.什么是系统调用? 所谓系统调用是指操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。2.为什么用户程序不能直接访问系统内核提供的服务呢? 由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。 因此,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数。3.什么是文件?li

2017-08-08 14:38:38 674

转载 Linux笔试面试题及答案

一 填空题:1. 在Linux系统中,以 文件 方式访问设备 。2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。3. Linux文件系统中每个文件用 i节点 来标识。4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。5. 链接分为: 硬链接 和 符号链接 。6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息。7. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是

2017-08-07 11:20:10 6885 1

原创 Git公钥生成及后续问题解决

因为博主使用的Ubuntu昨天莫名其妙出现故障,终端消失在搜索无果后,选择重启Ubuntu,结果ubuntu彻底崩了,只出现桌面背景,没有图标,在进入控制台设置多次无果后,博主选择重新安装ubuntu.在更改完中文环境,安装好中文输入法后,最大的问题来了,要进行配置我的git仓库coding.net,在一开始git init ,git push -u origin master,git add hello.c,git commit -m “注释”以后,git push提示我:Permission deni

2017-08-05 10:42:37 4525

转载 Hanoi塔问题

上图为 3 阶 Hanoi 塔假设有三个命名为 A B C 的塔座 ,在塔座A上插有n个直径大小不相同,由小到大编号为1 ,2 ,3 ,··· ,n的圆盘,要求将A座上的圆盘移至塔座C并按同样的顺序叠排圆盘移动必须遵守下列规则:1:每次只能移动一个圆盘 2:圆盘可以插在任意一个塔座上 3:任何时刻都不能将一个较大的圆盘放在一个较小的圆盘上 该问题的复杂性:若有n个盘子,則移动完所需之次数为2^n - 1,所以当盘数为64时,则所需次数为: 2^64 - 1 = 18446

2017-08-03 12:27:06 669

转载 腾讯笔试题

1、解释const的含义及实现机制const的含义及实现机制,比如:const int i,是怎么做到i只可读的?答:const用来说明所定义的变量是只读的。这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。2、买200返100优惠券,实际上折扣是多少?到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?答:由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。假设开始时花了x元,那么可以买到 x + x/

2017-08-03 10:44:22 498

转载 想成为嵌入式程序员应知道的0x10个基本问题

C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在

2017-08-03 10:16:49 674

原创 排序算法

排序算法一、插入排序——直接插入排序(Straight InsertionSort)基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。算法实现:

2017-08-01 17:17:44 498

原创 [牛客网]错题整理(8)

(1)只能使用成员函数重载的运算符有:=、()、[]、->、new、delete。(2)单目运算符最好重载为成员函数。(3) 对于复合的赋值运算符如+=、-=、*=、/=、&=、!=、~=、%=、>>=、<<=建议重载为成员函数。(4) 对于其它运算符,建议重载为友元函数。运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下:函数类型 op

2017-08-01 10:03:02 564

原创 [牛客网]错题整理(7)

FindSubString() 函数就是要找到一个先递增再递减且递增和递减的数量相等的回文序列,例如: ABCDCBA ,先是 后一项 = 前一项 ASCII 码 +1 , 后是 后一项 = 前一项 ASCII 码 -1 ,才能返回回文子串的长度,否则返回 0 。ModifyString() 函数不断寻找上述类型的子串,如果不满足条件,就*p2++ = *p1++;当遇到 ABABA 中前一个 ABA 的时候,满足回文子串要求,此时 p1 指向 A BABA , p2 指向 ABABA ; s

2017-07-27 11:17:15 642

原创 [牛客网]错题整理(6)

解析:这题在不同的编译器会有不同的结果:第一种情况:j = (i++*i++);=>3*4 第一次i++返回3 第二次i++返回4 最后i的值为5k = (++i*++i);=>6*7 第三次++i返回6 第四次++i 返回7 最后i的值为7但是还有一种编译器的分析情况是这样j=(i++*i++)=>3*3 也就是说运行时直接使用的i的值3 但是i最终在内存的值还为5毕竟加了2次k = (++i*++i);=>7*7 运行时先计算的++i,然后取出i的最终值7 在计算乘法。还有一种情

2017-07-25 10:34:23 549

原创 [牛客网]错题整理(5)

错题集1.下面关于#import和#include描述正确的是()A.#import和#include不可以混合使用B.#import只用于引用Objective-C的文件,#include只用于C和C++文件C.#import和#include的使用效果完全相同D.#import是#include的替代指令,防止重复引用答案:D解析:预编译指令Objective-C:#importC,C++:#include#import由gcc编译器支持在 Objective-C 中,#impo

2017-07-23 10:15:28 529

原创 [数组]二分查找算法

二分查找算法二分查找算法也称为折半查找法,它的思想是每次都与序列的中间元素比较。二分查找的一个前提条件是数组是有序的,假设数组array为递增序列,findData为要查找的数,n为数组长度,首先将n个元素分成个数大致相同的两半,取array[n/2]与将要查找的值findData进行比较,如果相等,则找到了,算法终止;如果findData<array[n/2],在数组的左半部分进行查找,相反则在右半部分进行查找。二分查找算法分为递归和非递归方法解决

2017-07-21 18:16:15 713

原创 [数组]递归方式求和

递归方法求和首先,如果不需要用递归方法,我们可以用遍历的方式来实现数组元素求和。#include <stdio.h> int main(){int a[] = {3,6,8,2,1};int i;int sum = 0;int len = sizeof(a) / sizeof(a[0]);for(i = 0; i < len; i++){sum += a[i];}printf("%d\n",sum);return 0;} 如题目要求,用递归方式实现求和。我们需要考虑递

2017-07-21 17:14:37 2302

转载 求质数算法的N种境界[1] - 试除法和初级筛法

★引子  前天,俺在《俺的招聘经验[4]:通过笔试答题能看出啥?》一文,以"求质数"作为例子,介绍了一些考察应聘者的经验。由于本文没有政治敏感内容,顺便就转贴到俺在CSDN的镜像博客。  昨天,某个CSDN网友在留言中写道:老实说,这个程序并不好写,除非你背过这段代码如果只在纸上让别人写程序,很多人都会出错但是如果给一台电脑,大多数人都会把这个程序调试正确出这个题目没啥意义只能让别人觉得你出题水平低  首先,这位网友看帖可能不太仔细。俺在文中已经专门强调过了,评判笔试答题,"思路和想法"远远

2017-07-21 14:05:00 502 1

原创 [牛客网]错题整理(4)

错题集1.没用参数的两个函数是不能重载的.说法是否正确?答案:错误解析:const 可以构成重载 2.Math.round(11.5) 等于:()答案:12解析:首先要注意的是它的返回值类型是long,如果 Math.round(11.5f),那它的返回值类型就是int,这一点可以参考API其次它返回的是一个最接近参数的long 值(例如: Math.round(11.6) = 12; Math.round(-11.6) = -12; Math.round(-0.1) = 0; Math.

2017-07-21 10:26:08 813

原创 操作系统

操作系统进程与线程的区别:1)一个线程必定属于也只能属于一个进程;而一个进程可以拥有多个线程并且至少拥有一个线程;2)属于一个进程的所有线程共享该进程的所有资源,包括打开的文件、创建的socket等。不同的进程互相独立。3)线程又被称为轻量级进程。进程有进程控制块,线程也有线程控制块。但线程控制块比进程控制块小得多。线程间切换代价小,进程间切换代价大。4)进程是程序的一次执行,线程可以理解为程序中一段程序片段的执行。5)每个进程都有独立的内存空间,而线程共享其所属进程的内存空间。

2017-07-20 15:14:42 375

原创 面向对象相关

面向对象与面向过程的区别:1)出发点不同。面向对象是用符合常规思维方式来处理客观世界的问题,强调把问题域的要领直接映射到对象及对象之间的接口上。而面向过程则不然,它强调的是把过程抽象化与模块化,它是以过程为中心构造或处理客观世界问题的。2)层次逻辑关系不同。面向对象方法则是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单位,尽可能地使计算机世界向客观世界靠拢,以使问题的处理更清晰直接。面向对象的方法是用类的层次结构来体现类之间的继承和发展。而面向过程方法处理问题的基本单位是能清

2017-07-19 11:18:55 396

原创 [牛客网]错题整理(3)

1 静态链接库的优点 (1) 代码装载速度快,执行速度略比动态链接库快; (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。2 动态链接库的优点 (1) 更加节省内存并减少页面交换; (2) DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性; (3) 不同编程语言编写的程

2017-07-19 10:03:59 671

原创 变量&字符串

全局变量和静态变量的异同相同点:都保留在静态存储区,生命期与程序生命期相同。不同点:全局变量具有全局作用域,静态变量具有稳健作用域。把局部变量改为静态变量后是改变了它的存储方式,即改变了它的生存期;把全局变量改变为静态变量后是改变了它的作用域,限制了它的适用范围。 全局变量和局部变量的区别1)全局变量的作用域为这个程序块,而局部变量的作用域为当前函数;2)内存存储方式不同,全局变量分配在全局数据区,后者分配在栈区;3)生命周期不同。全局变量随主程序创建而创建,随主程序销毁而销毁,局部变量在局

2017-07-18 11:22:47 509

原创 [牛客网]错题整理(2)

错题集1.定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?答案:int (*(*F)(int, int))(int)解析:首先,一个函数指针,指向的函数有两个int形参,这个就是(*F)(int, int),这返回的是一个指针返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数;把上面的结果当成一个指针,相当于再做一次上面的步骤,所以结果为:int (*(*F)(int, int))(int)

2017-07-18 09:48:58 1262

原创 可重入函数

可重入函数什么是可重入函数?C语言如何写可重入函数?可重入函数是指能够被多个线程“同时”调用的函数,并且能保证函数结果正确的函数。在C语言中编写可重入函数时,尽量不要使用全局变量或静态变量,如果使用了全局变量或静态变量,就需要特别注意对这类变量的访问的互斥。一般采用以下几种措施来保证函数的可重入性:信号量机制,关调度机制,关中断机制。需要注意的是,不要调用不可重入函数,当调用了不可重入函数时,会使该函数也变为不可重入函数。一般驱动程序都是不可重入函数,因此在编写驱动程序时一定要注意重入问题。

2017-07-16 20:44:39 411

原创 函数指针与指针函数的区别

函数指针与指针函数的区别指针函数是带指针的函数,本质上是一个函数,函数返回类型是某一类型的指针。其形式一般如下:类型标识符 *函数名(参数列表)例如,int *f(x,y),它的意思是声明一个函数f(x,y),该函数返回类型为int型指针。而函数指针是指向函数的指针变量,即本质是一个指针变量,表示的是一个指针,它指向的是一个函数。其形式一般如下:类型说明符 (*函数名)(参数)例如:int (*pf)(int x),它的意思就是声明一个函数指针,而pf=func,则将func函数首地址赋值给指针

2017-07-16 20:37:30 546 1

原创 [牛客网]错题整理(1)

错题集1.int main(int argc ,char** argv){int n = 9, i;for (i = 1; i<argc; i++)n = n * 10 + *argv[i] - '0';printf("%d\n", n);return 0;}经编译连接生成的可执行文件 tt.exe 。若执行输入以下命令行 tt 12 345 678 ,则程序运行的输出结果是()答案:9136解析:输入tt 12 345 678时,argc == 4argv == {“tt”, "1

2017-07-16 19:48:46 876

原创 位操作

如何利用位运算计算数的绝对值以x为负数为例来分析。因为在计算机中,数字都是以补码的形式存放的,求负数的绝对值,就应该不管符号位,执行按位取反,末位加1操作。对于一个负数,将其右移31位后变成0xffffffff,而对于一个整数而言,右移31位则为0x00000000,而0xffffffff^x+x=-1,因为1011^1111=0100,任何数与1111异或,其实质都是把x的0和1进行颠倒计算。如果用变量y表示x右移31位,(x^y)-y则表示的是x的绝对值。代码示例:

2017-07-14 23:39:27 714

原创 结构体与类

结构体与类C语言中struct与union的区别1)结构体和联合体虽然都是由多个不同的数据类型成员组成的,但不同之处在于联合体中所有成员共用一块地址空间,即联合体只存放了一个被选中的成员,而结构体中所有成员占用空间是累加的,其所有成员都存在,不同成员会存放在不同地址。在计算一个结构体变量的总长度时,其内存空间大小等于所有成员长度之和(需要考虑字节对齐),而在联合体中,所有成员不能同时占有内存空间,它们不能同时存在,所以一个联合型变量的长度等于其最长的成员的长度。2)对于联合体的不同成员的赋值,将会对它

2017-07-14 10:24:54 379

原创 预处理相关问题

预处理含参数宏与函数的区别1)函数调用时,首先求出实参表达式的值,然后带入形参。而使用带参的宏只有是进行简单的字符替换。2)函数调用是在程序运行时处理的,它需要分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,也不进行值的传递处理,也没有“返回值”的概念。3)对函数中的实参和形参都要定义类型,两者的类型要求一致,如果不一致,应进行类型转换;而宏不存在类型问题,宏名无类型,它的参数也无类型,只是一个符号代表,展开时带入指定的字符即可。宏定义时,字符串可以是任何类型的数据。4)

2017-07-14 09:21:23 401

原创 define声明一个常数问题

define声明一个常数,用以表明1年中有多少秒#define SECOND_PER_YEAR(60 * 60 * 24 * 365)UL1)由于宏定义是预处理命令,而非语句,所以在进行宏定义时,不能以分号结束。2)预处理只会执行简单的替换,不会计算表达式的值,所以需要注意括号的使用,直接写出是如何计算一年中有多少秒而不是计算出实际的值。3)考虑到可能存在数据溢出的问题,更加规范化的写法是使用长整型,即UL类型,告诉编译器这个常数是长整型数。

2017-07-14 09:20:30 2140

原创 变量与零值的比较

变量与零值的比较1)int类型if(n == 0)if(n != 0)不推荐的写法有:if(n)if(!n)2)float类型 const float EPSINON = 0.00001; if((x >= -EPSINON) && (x <= EPSINON)) 错误的写法有: if(x == 0.0) if(x != 0.0)3)bool类型 if(flag) if(!flag) 不推荐的写法有: if(flag == TRUE) if(flag

2017-07-13 19:13:01 328

Unix网络通信卷1+卷2

Unix网络通信卷1+卷2进程间通信全!

2017-08-07

通讯录(C++版本)

C++实现的简单通讯录,使用了vector容器,迭代器等,希望对大家有参考意义~

2017-02-13

空空如也

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

TA关注的人

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