自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 QT学习记录

QWidget::move函数原型:void move(int x, int y);void move(const QPoint &);其中move的原点是父窗口的左上角,  如果没有父窗口,则桌面即为父窗口x往右递增,y往下递增...

2018-09-17 21:16:10 384

原创 联合体结和结构体以及几种小端模式下的高位字节的获取

#include #include #include #define highByte(x) ((uint8_t)((x)>>8))typedef union test{ uint16_t aa; uint8_t bb;}myTest;typedef struct str{ uint16_t AA; uint32_t BB;}myStru

2018-02-04 20:32:07 786

转载 二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现

一、基本概念每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。性质:1、非空二叉树的第n层上至多有2^(n-1)个元素。2、深度为h的二叉树至多有2^h-1个结点。满二叉树:所有终端都在同一层次,且非终端结点的度数为2。在满二叉树中若其深度为h,则其所包含的结点数必为2^h-1。完全二叉树:除了最大的层次即成为一颗满二叉树且层次最大那层所有的结点均向左靠齐,即集中在左面的位置上,不能有空位置

2018-01-18 22:00:38 505

原创 linux内核之设备I/O块

为了优化寻址操作,内核既不会简单的按请求接收次序,也不会立即将请求提交给磁盘。相反,内核在提交前,先执行名为合并与排序的预操作,这种预操作可以极大的提高系统的整体性能。在内核中负责提交I/O请求的子系统统称为I/O调度程序。I/O调度程序将磁盘I/O资源分配给系统中挂起的块I/O请求。具体的说,这种资源分配是通过将请求队列中挂起的请求合并和排序来完成。这里区分I/O调度程序和进程调度程序。进程

2017-10-10 19:57:36 668

原创 应聘恩智浦时考察正则表达式

正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。1.正则表达式基本语法两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despai

2017-10-10 18:14:03 423

原创 凌云光科技笔试题

1、死锁产生的原因及解决方案产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。

2017-10-10 17:30:17 2578

转载 socket网络编程一些知识点

一、socket用于不同计算机间的进程间通信TCP/IP协议族中网络层的IP地址可以唯一标识网络中的主机,而传输层的端口可以唯一标识主机中的应用程序。Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不

2017-10-10 16:34:07 454

转载 逻辑地址、物理地址、虚拟地址、地址空间、线性地址等概念通俗易懂

逻辑地址:很简单,就是你源程序里使用的地址,或者源代码经过编译以后编译器将一些标号,变量转换成的地址,或者相对于当前段的偏移地址。线性地址:这个地址很重要,也很不容易理解。分段机制下CPU寻址是二维的地址即,段地址:偏移地址,CPU不可能认识二维地址,因此需要转化成一维地址即,段地址*16+偏移地址,这样得到的地址便是线性地址(在未开启分页机制的情况下也是物理地址)。这样有什么意义呢?或者

2017-10-06 14:47:30 4260

原创 深信服2018年秋招测试工程师面试

1、介绍一下,extern在c语言中的用处。2、介绍strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char

2017-09-28 09:46:25 1273

转载 什么是实时操作系统和非实时操作系统?

嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作系统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的 可裁剪、低资源占用、低功耗等特点;而作为一种实时操作系统(本文对实时操作系统特性的讨论仅限于强实时操作系统,下面提到的实时操作系统也均指强实时操 作系统),它与通用操作系统(如Windows、Unix、Linux等)相比有很大的差别,下面我们将通过比较这

2017-09-27 22:40:55 2308

原创 展讯校招2018年秋招笔试题

kmalloc、vmalloc、malloc的区别简单的说:kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc不保证任何东西(这点是自己猜测的,不一定正确)kmalloc能分配的大小有限,vmalloc和malloc能分配的大小相对较大内存只有

2017-09-20 22:35:22 2690 1

原创 应聘嵌入式工程师笔试常考之宏定义的优缺点

1、宏定义的优点:(1)   方便程序的修改      使用简单宏定义可用宏代替一个在程序中经常使用的常量,这样在将该常量改变时,不用对整个程序进行修改,只修改宏定义的字符串即可,而且当常量比较长时,我们可以用较短的有意义的标识符来写程序,这样更方便一些。(2) 提高程序的运行效率      使用带参数的宏定义可完成函数调用的功能,又能减少系统开销,提高运行效率。正如C语言中所讲,

2017-09-20 10:43:18 515

转载 用户访问一个网站的过程描述

描述从浏览器打开http://www.baidu.com地址回车发送请求到看到页面的过程?打开浏览器输入网址回车,到看到页面的过程大纲:1、用户访问网站流程框架2、DNS解析原理 *****3、tcp/ip三次握手原理 *****4、http协议原理(www服务的请求过程)请求报文细节!5、大规模网站集群架构细节。6、http协议原理(www服务的响应过程)响应报文

2017-09-19 23:41:22 4862

原创 string类的构造以及static和const的详细作用

static关键字至少有下列n个作用1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内; 

2017-09-15 18:49:59 960

转载 嵌入式多任务OS中Vxworks和linux的一些区别

自己目前开发的嵌入式开发所用的操作系统是VxWorks,以前读大学的时候用的最多的是linux操作系统,但是,对于这两种操作系统之间到底有什么区别,还真没有真正去细心的总结过,被别人问起时,难免有些尴尬的感觉,毕竟自己是学嵌入式开发的,竟然对嵌入式开发系统了解的不深入,今天专门抽时间好好的总结下,二者到底有什么区别?            VxWor

2017-09-15 08:44:14 1544

转载 C++中不同指针指向同一个字符串,然而地址相同

int main(int argc, char* argv[]){ char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char * str5 = "abc"; const char * str

2017-09-14 22:23:44 1794

转载 嵌入式编程常考的无符号数和有符号数的运算问题

1、有符号数与无符号数之间运算问题  以下实验均在virual c++6中运行通过  这个问题测试是否懂得C语言中的整数自动转换原则,有些开发者懂得极少这些东西。当表达式中存在有符号类型和无符号类型时 所有的操作数都自动转换为无符号类型。因此,从这个意义上讲,无符号数的运算优先级要高于有符号数,这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。 首先进行一个实验,分别定

2017-09-14 21:17:57 1670

原创 高质量的c/c++编程有关malloc分配内存不足的问题

如果在申请动态内存时找不到足够大的内存块,malloc 和new 将返回NULL 指针,宣告内存申请失败。通常有三种方式处理“内存耗尽”问题。(1)判断指针是否为NULL,如果是则马上用return 语句终止本函数。例如:void Func(void){A *a = new A;if(a == NULL){return;}…}(2)判断指针是否为NU

2017-09-13 23:27:55 4424

原创 malloc和new的区别和联系

1. malloc()函数1.1 malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。1.2 voi

2017-09-13 23:25:10 282

转载 C++中explicit关键字的使用

explicit用来防止由构造函数定义的隐式转换。 要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。例如:class things{ public: things(const std::string&name =""): m_name(name),height(0)

2017-09-13 22:58:39 241

转载 C++中的public、private和protected继承

公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有

2017-09-13 22:53:08 249

转载 编程中的字节对齐问题

在没有#pragma pack宏的情况下,要遵守下面的三个原则1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储。2、结构体作为成员:如

2017-09-13 22:20:46 208

转载 ARM中状态转移指令+条件执行+内存操作

ARM 汇编指令条件执行在ARM模式下,任何一条数据处理指令可以选择是否根据操作的结果来更新CPSR寄存器中的ALU状态标志位。在数据处理指令中使用S后缀来实现该功能。 不要在CMP,CMN,TST或者TEQ指令中使用S后缀。这些比较指令总是会更新标志位。 在Thumb模式下,所有数据处理指令都更新CPSR中的标志位。有一个例外就是:当一个或更多个高寄存器被用在MOV和ADD指令时,此

2017-09-12 17:28:06 1644

原创 ARM处理模式和部分处理指令

1、先介绍ARM的处理模式(7种)用户模式(User):ARM处理器正常的程序执行状态 快速中断模式(FIQ):用于高速数据传输或通道处理 外部中断模式(IRQ):用于通用的中断处理 管理模式(Svc):操作系统使用的保护模式 数据访问中止模式(Abort):数据或指令预取终止时进入该模式,用于虚拟存储及存储保护 系统模式(System):运行具有特权的操作系统任务 未

2017-09-12 15:56:52 302

原创 牛客网错题集锦6

1、在RHEL5系统中使用vi编辑文件时,使用(  )末行命令可以像下图一样显示出每一行的行号。答案:set nu2、一台主机要实现通过局域网与另一个局域网通信,需要做的工作是?  答案:  定义一条本机指向所在网络网关的路由答案:本机只需设置本地网络默认网关,至于到目的网络,是网关路由器的工作。3、下列哪些因素不会限制Linux服务器并发连接数?  答案:系统网卡数量内存大小

2017-09-12 09:47:55 1056

转载 二叉树的遍历编程求解

1、已知二叉树的前序遍历和中序遍历,则可以确定一棵二叉树已知二叉树的中序遍历和后序遍历,则可以确定一个二叉树。但是已知二叉树的前序和后序遍历无法确定一棵二叉树。2、下面是编程实现由前序遍历结果+中序遍历结果,计算后序遍历结果。一道HULU的笔试题(How I wish yesterday once more)假设有棵树,长下面这个样子,它的前序遍历,中序遍历

2017-09-11 22:11:50 503

转载 两个栈实现一个队列的思路

两年前从网上看到一道面试题:用两个栈(Stack)实现一个队列(Queue)。觉得不错,就经常拿来面试,几年下来,做此题的应该有几十人了。通过对面试者的表现和反应,有一些统计和感受,在此做个小结。 用C++描述,题目大致是这样的: 已知下面Stack类及其3个方法Push、Pop和 Count,请用2个Stack实现Queue类的入队(Enqueue)出队(Dequeue)方法。

2017-09-11 21:09:14 421 1

转载 linux的虚拟内存和物理内存的理解

第一项是虚拟内存:第一层理解1.         每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构 2.       一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪

2017-09-11 10:06:10 257

原创 linux中一些网络方面的基础知识

1、nslookup和host基本相同,用来查询一台机器的IP地址和其对应的域名。该命令有两种模式:交互式和非交互式。若命令不带参数,则会进入交互模式。2、tcpdump是网络运维人员查找问题的关键。通过不同的命令行选项来改变抓包状态。利用正则表达式组合成多种过滤报文的的条件,数据包满足正则表达式的条件就会被捕获。如果没有给出任何条件,则网络上的所有数据包将会被截获。#tcpdump tc

2017-09-11 09:31:14 827

原创 二叉树中的一些概念

1、在有N个叶子节点的哈夫曼树中,其节点总数为()?A、不确定 B、2N-1 C、2N+1 D、2N解析:如果此处的哈夫曼树是指二叉树则选择B无论哈夫曼树是几叉,其特点是一致的(假设为m叉),即树中只存在度为0的结点(即叶结点)和度为m的结点.不妨设度为0的结点个数为x,度为m的结点个数为y,则存在一个等式x+y=my+1,即x=(m-1)y+1,x+y是树的总结点个数.就这道题来说,

2017-09-10 21:09:23 535

原创 在hi3531a开发板上搭建qt环境遇到的屏幕呈绿色的解决办法

在嵌入式平台,我们使用的QT会是以QWS方式运行,即会先运行QWSServer,再运行实际的窗体,在该情况下,默认QWS背景会是绿色的,而在嵌入 式上,很多方案都会将video和graphic层分开,两层的层叠也是可调的,当需要在video上面做一些控制图标等,此时就需要将gfx调到vid 之上,此时就需要将运行于gfx的qt程序设置背景透明,共需要设置两处:一处是QWS,一处是窗体。对此,我们使

2017-09-09 22:41:20 1397

原创 虚拟机安装linux的一些原理

1、常见的虚拟机环境对比-Vmware和virsual box的对比VirtualBox的特点:完全免费,性价比高,基本可以满足日常的使用,适用于高分辨率的windows界面;开机速度快;配置上少一些,但是都够用;操作简单(需要设置的内容少),易上手;软件不大(如果我没记错的话,virtualbox占用一二百兆,vmware大概要用七八百兆);VmWare:功能强大,只有Vmware

2017-09-08 17:09:46 1713

转载 直接插入排序C语言实现

直接插入排序即是在要排序的数组中,假设前n-1(n>=2)个数已经是排好序的,现在要把第n个数插入到前n个已经排好序的数组中,使得这n个数也变成有序的,如此反复循环,使得要排序的数组中的最后一个元素也排好序,        我们可以先假设第一个数是排好序的,然后第二个数和第一个数进行比较,如果第二个数比第一个数大,那么说明前两个数排好序,无需做调整,如果第二个数比第一个数小,那么就把第

2017-09-08 12:14:03 312

原创 最近见到的一些2017年的名企校招题

#include #include #include #include #include #include #include using namespace std;#if 0long fibonacci1(int n){ if(n<=2) return 1; else { long num1=1; lon

2017-09-05 22:24:26 217

原创 牛客网错题集锦

1、Linux中,一个端口能够接受tcp链接数量的理论上限是?易错误的选择(65535)解析:标识一个TCP连接的是,客户端和服务器的IP地址加端口号,尽管服务器IP地址和端口号一样,但是客户端IP地址是不一样的,而客户端端口号只有本地意义,所以理论上服务器一个端口号能接受的TCP连接是无上限的。2、UNIX系统中进程由三部分组成:进程控制块,正文段和数据段。这意味着一个程序的正文与数

2017-09-05 10:05:01 612

转载 linux中常用指令tcpdump

tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04。tcpdump的命令格式tcpdump的参数众多,通过man tcpdump可以查看tcpdump的详细说明,这边只列一些笔者自己常用的参数:tcpdump [-i 网卡] -nnAX '表达式'各参数说明如下:-i:interface 监听的

2017-09-03 10:04:21 380

原创 牛客错题集锦5

1、在Redhat公司发布的Linux版本中,若要使得用户登录验证,需要修改以下__/etc/shadow _ ___脚本。ect/passwd用来保存用户的基本信息,而/etc/shadow用来保存所有用户的密码,在/etc/shadow中第二字段为用户的加密密码,如果密码是"!!"或" * "则代表没有密码不能登录,需要用户登录验证。2、下面有关linux查看系统负载的命令,说

2017-09-03 10:02:24 668

转载 linux两个不常用的两个有用的命令ulimit和xargs

1、ulimit指令概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell 进程及其子进程的资源使用设置限制。本文将在后面的章节中详细说明 ulimit 的功

2017-09-01 11:03:11 374

原创 网易2017年校招部分笔试题

#include #include #include #include using namespace std;#if 0int main(int argc,char *argv[]){ //string s1 = new string("abc"); string s1("abc"); string s2; s2="abc"; if(s1

2017-08-31 22:26:42 599

原创 牛客网错题集锦5

1、如果您想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么您可以使用的命令是()答案:命令find -name "*.txt",是获取当前目录的.txt文件2、设定linux系统默认为字符模式,需要修改的配置文件是( )答案:/etc/inittab3、apache目录访问控制的参数有( )AuthName:验证窗口的名称AuthType:

2017-08-31 15:41:15 1037

空空如也

空空如也

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

TA关注的人

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