自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 使用双向链表实现栈的相关操作

入栈:我们采用链表的头插获得栈顶的元素:把头部元素拷贝到用户数据区出栈:先把头部的元素拷贝到用户数据区,然后删除这个节点好的,看一下头文件吧。#pragma once#include “dlist.h”struct stack_info {struct dlist_info *dlist;// 双向链表的指针int (*push)(struct stack_info *info, ...

2019-09-23 08:45:59 449

转载 volatile的用法和实际应用场景

1、volatile提醒编译器它后面所定义的变量随时有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都要小心地。从该变量的地址中读取。如果没有volatile关键字,则编译器就可能优化读取和存储,可能暂时使用寄存器中的值。 当要求使用volatile声明变量的时候,系统总是重新从它所在的内存读取数据,即使前面的指令刚刚从该处读取过数据。精确地说就是,遇到这个关键字声明的变量,编译器...

2019-09-20 10:40:44 743

转载 volatile在多线程中的应用

volatile在词典中的意思是易变的,反复无常的。它在我们的程序设计中常常用到的。volatile是一个关键字,用来修饰一个变量,告诉编译器在编译的时候不要对其进行优化,在操作寄存器和多线程中这种用法是最常见的。有这样一个例子:#include <stdio.h>         #inc...

2019-09-20 10:39:17 203

转载 端口详细解析

端口号—具有网络功能的应用软件的标识号。注意,端口号是不固定的,即可以由用户手工可以分配(当然,一般在软件编写时就已经定义)。当然,有很多应用软件有公认的默认的端口,比如FTP:20和21,HTTP:80,TELNET:23等等,这里就不一一列举了。一个软件可以拥有多个端口号,这证明这个软件拥有不止一个网络功能。0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的,而1024-6...

2019-09-20 10:10:13 371

转载 预防操作系统死锁

破坏死锁的四个必要条件中的一个或几个。预防死锁破坏互斥条件破坏请求和保持条件破坏不可剥夺条件破坏环路等待条件破坏互斥条件即允许多个进程同时访问资源。但由于资源本身固有特性的限制,此方法不可行。破坏请求和保持条件第一种协议全分配,全释放: 采用预先静态分配方法,即要求进程在运行之前一次性申请它所需要的全部资源,在它的资源未满足前,不把它投入运行。若系统有足够的资源,便可把进程需...

2019-09-19 15:49:44 249

转载 嵌入式系统中看门狗的使用总结

一、看门狗原理    在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。    看门狗其实就是一个可以在一定时间内被复位的计数器。当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启(俗称“被狗咬”)。系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零...

2019-09-11 16:49:25 406

转载 STL

STL(standard template libaray ):标准模板库,是C++程序设计语言的标准程序库,是一个包罗算法与数据结构的软件框架。STL的目的是标准化组件,所以在STL中使用了泛型编程的思想,对我们常用的数据结构:顺序表、链表、树、哈希以及常用的查找、排序等算法使用模板进行了封装,而且从运行效率以及内存使用上都基本达到了最优。引入STL后,再也不需要我们重新造轮子,而且写出来的代码...

2019-09-11 16:29:48 84

转载 volatile的详细用法介绍

volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如下程序:XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58;对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器就不能像对待纯粹的程序那样对上述四条语句进行...

2019-09-04 10:34:54 152

转载 Linux系统内核详解

Linux内核设计:单内核、模块化(动态装载和卸载)(1) Linux:单内核设计,但充分借鉴了微内核体系的设计的优点;为内核引入了模块化机制;(2) 内核的组成部分:kernel:内核核心,一般为bzImage格式,通常位于/boot目录,名称为vmlinuz-VERSION-release;当系统启动之后该文件就不在使用,因为已经加载到内存,放置/boot下方便管理kernel o...

2019-09-04 09:15:57 176

转载 进程间通信方式分析

管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,...

2019-09-03 15:21:02 206

转载 宏定义的重要用法总结

用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)经典的笔试题目,在我面试彪琪数码科技的时候笔试题有这个题。我的答案还算正确吧,但是显然不是完美的。看下面的完美解析:#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理...

2019-09-03 15:00:23 172

转载 动态内存管理

1.关于动态申请内存的问题 出现率极高程序的局部变量存在于(栈)中程序的全局变量存在于(静态存储区)中程序动态申请的数据存在于(堆)中<1>void GetMemory(char *p){p = (char *)malloc(100);}void Test1(void){char *str = NULL;GetMemory(str);strcpy(s...

2019-09-03 10:44:22 280

转载 同步IO和异步IO的区别,搞清楚模型和模式是不同的两种说法

POSIX同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。POSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步IO按POSIX的描述似乎把同步和阻塞划等号,异步和非阻塞划等号,但是为什么有的人说同步IO不等于阻...

2019-09-03 09:45:05 221

转载 国际标准智商测试题目

国际标准智商测试题目篇一英国一家著名的报纸举办智力竞赛,为下面的难题征求答案: 三个名人都对人类立过不朽之功,其中一个在医学上有过重大贡 献,一个是著名的化学家,一个是举世瞩目的核物理学家。 ·有一天,三人搭乘同一个气球。突然,气球遇到风暴,要把其中 一人推下去,才能确保另外两人的安全。这三人中,究竟应该牺牲哪一位?该报收到了成千上万的应征信,他们都用长篇大论来说明那三个人的丰功伟绩,但评判员...

2019-09-02 23:08:33 1381

转载 世界著名智力题

世界著名智力题1、有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?    2、一个经理有三个女儿,三个女儿的年龄加起来等于1 ,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三个女儿的年龄分别是多少?为什么?    3...

2019-09-02 23:07:18 292

转载 什么是MMU,MMU的作用

I. 什么是MMU,MMU的作用MMU是Memory Management Unit的缩写. 针对各种CPU, MMU是个可选的配件. MMU负责的是虚拟地址 &O1663;&O1664; 物理地址的转换. 提供硬件机制的内存访问授权.现 代的多用户多进程操作系统, 需要MMU, 才能达到每个用户进程都拥有自己的独立的地址空间的目标. 使用MMU, OS划分出一段地址区域, 在...

2019-09-02 23:02:03 3667

转载 Struct和Class的区别

Struct和Class的区别今天这篇博文主要讲解在C++中关键字struct和class的区别。这篇博文,将会系统的将这两个关键字的不同面进行详细的讲解。从语法上来讲,class和struct做类型定义时只有两点区别:1.默认继承权限,如果不指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;2.成员的默认访问权限。class的成员默认是...

2019-09-02 22:52:15 99

转载 树的高度和深度

树的高度和深度深度定义是从上往下的,高度定义是从下往上的。(其实不用在意这个,反正树的深度高度怎么数都一样的)。深度和高度涉及到结点的层数,有的教材规定根结点在第0层,有的则规定根结点在第1层。原理都是一样的,因教材而异。树从根结点开始往下数,叶子结点所在的最大层数称为 树的深度。有的教材对于树的高度定义是高度就是深度(层数是0123,深度=高度=3;层数是1234,深度=高度=4);而有...

2019-09-02 22:42:48 1048

原创 C++类继承于类模板简介

C++类继承于类简介#include using namespace std;template class Base{public:void test(T t){cout << “t:” << t << endl;}};template <class T1,class T2>//这里的T2其实可以看做是T的形参与实参的关系,T...

2019-07-21 09:32:18 106

原创 C++类模板入门

C++类模板入门基本格式:template class 类名{protected:T a;public:void func(){}……};类外定义函数:templete void 类名::func(){…}主函数中调用(实例化):类名<具体的变量类型> 对象(可选的参数列表)以数组形式的堆栈为例:#include using namesp...

2019-07-20 20:30:38 124

原创 C++模板函数的小入门

##C++模板函数的小入门#include using namespace std;template //每定义一个模板函数都要带上这句模板声明T m_max(T a,T b) //模板函数必不可少的两步写法,函数的返回值类型和参数类型可以设置为模板类型{return a > b ? a : b;}char *m_max(char *str1,char *str2)/...

2019-07-20 20:09:01 74

原创 类的继承与派生

##类的继承与派生继承权限 基类访问权限 派生类访问权限 派外访问(可/不可)public public public 可protected protected 不可protected public protected 不可protected protected 不可private public privat...

2019-07-15 14:48:46 54

原创 友元函数和友元成员函数

友元函数和友元成员函数#include using namespace std;class Boy;//提前声明,否则下面的函数声明没有办法定义:class Girl{private:int age;public:Girl(int a){age = a;}~Girl(){cout << “Girl end” << endl;}void pr...

2019-07-15 14:25:28 230

原创 C++中关于const 用法小结(定期补充):

C++中关于const 用法小结(定期补充):const对象: - 任何对const对象的成员数据进行修改的操作都会编译报错; - 有两种写法:const Test t1;Test const t1: - 被const修饰的公有成员数据可以被访问,但依然不能被修改:const函数:-格式写法:void func(int ,int,…) const;- 不可以修改成员数...

2019-07-15 14:08:41 73

原创 C++中二义性出现的地方(定期更新)

标题C++中二义性出现的地方(定期更新)1.c++中的函数重载和函数参数默认值同时出现的时候:2.多继承中,基类中成员数据名相同,而要对他们进行引用或修改时,出现二义性:3.在虚继承中,如果不加关键字virtual时:所谓二义性:编译时出现歧义:这时我们就要为冲突成员数据指明归属处,以保证唯一性!!!...

2019-07-15 13:45:17 152

原创 C++ 域解析符的用处

C++域解析符的用处小结:1.指明使用的命名空间:2.父类与子类的成员数据重名时,域使用父类中的成员数据:3.友元成员函数中,写在待分享数据类中的函数声明:4.对static 成员数据初始化:5.调用static函数:6.类外定义函数体:7.在类的多继承中,两个基类中拥有相同名称的成员变量,从而为避免引用二义性时:基本格式:举例说明:1.void Test :: func(int...

2019-07-15 13:33:19 720

原创 规范创建工程项目文件

工程项目文件的建立有多种,可什么才算是标准类型的呢?下面谈谈自己所学;

2019-01-23 21:12:58 155

空空如也

空空如也

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

TA关注的人

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