自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CMAKE入门

title: CMAKE入门date: 2021-05-24 19:03:56description:What CMake can do跨平台构建  一套C/C++代码,多平台运行。假设在Windows上, OSX和Linux上使用:Visual Studio, Xcode, Makefile.可以一套代码基于同一个CMAKE即时编译。直接生成项目,不需要额外配置。VCS友好 当项目出现更新,如添加一个新文件。这个工作如果交给IDE来做,很麻烦。交给CMAKE,只需要一行代码,类似于Mak.

2021-05-25 17:18:39 176

原创 GCC自带的一些builtin内建函数

title: GCC自带的一些builtin内建函数date: 2021-02-27 18:57:00description: 一些GCC自带的内建(bulitin)函数的接口及实现一、GCC内建函数 最近在刷 leetcode 的时候遇到了一些以__builtin开头的函数,它们被用在状态压缩相关的题目中特别有用,于是就去了解了一下。 原来这些函数是GCC编译器自带的内建函数。这些__builtin_*形式的内建函数一般是基于不同硬件平台采用专门的硬件指令实现的,因此性能较高。在刷题时可以直.

2021-02-27 20:41:33 8018

原创 C++中const变量的修改与赋值

title: C++中const变量的修改与赋值date: 2021-02-25 20:26:16description: C++中const变量的修改与赋值 出于避免对数据的无意修改的需求,C及C++语言引入了const关键字。与C语言中的const相比,C++中的const具有更丰富的用法。C++中的const除了可用于修饰变量,指针,函数及函数参数,还可用于修饰类对象,类成员,类成员函数等。由于其丰富的用途,往往容易对其产生误解,尤其是与指针用法结合在一起时。下面以一些实例来说明这个问题。.

2021-02-27 20:37:02 17892 4

转载 2020-12-31

转载经典Hash函数的实现Hash函数是指把一个大范围映射到一个小范围。把大范围映射到一个小范围的目的往往是为了节省空间,使得数据容易保存。除此以外,Hash函数往往应用于查找上。所以,在考虑使用Hash函数之前,需要明白它的几个限制:Hash的主要原理就是把大范围映射到小范围;所以,你输入的实际值的个数必须和小范围相当或者比它更小。不然冲突就会很多。由于Hash逼近单向函数;所以,你可以用它来对数据进行加密。不同的应用对Hash函数有着不同的要求;比如,用于加密的Hash函数主要考虑它和单项

2020-12-31 15:37:59 126

原创 C++关键字与保留标识符

title: C++关键字与保留标识符description: C++的关键字与保留标识符简介和总结C++语言关键字和保留标识符关键字 关键字是组成编程语言词汇表的标识符,不能将他们用于其他用途。下表列出了C++所有关键字及,包括C++11,14,17及20标准对于关键字用途的重新定义。关键字标准描述alignasC++11用于内存对齐相关alignofC++11用于内存对齐相关asmC++11用于在C++代码中直接插入汇编语言代码autoC.

2020-11-26 15:14:38 1139

原创 C++语言标准

title: C++语言标准description: C++标准C++语言的起源 与C语言一样,C++也是在贝尔实验室诞生的,Bjarne Stroustrup于20世纪80年代在这里开发出了这种语言。用他自己的话来说,“C++主要是为了我的朋友和我不必再使用汇编语言、C语言或者其他现代高级语言来编程而设计的。它的主要功能是可以更方便地编写出好程序,让每个程序员更加快乐”。C++语言标准 美国国家标准委员会(ANSI)在1990年成立委员会,后来国际化标准组织ISO也通过其委员会加入这个行列。他.

2020-11-26 15:13:30 4591

原创 C++多继承时的虚函数表结构

title: C++多继承时的虚函数表结构date: 2020-09-26 17:40:36description: 一个多继承时虚函数表的结构的例子 C++为了实现运行时的多态,引入了虚函数的概念。为了实现运行时多态的,其底层一般采用虚函数表来实现对虚函数的动态绑定,进而在基类对象的引用或指针在调用同名的虚函数时可以根据引用或指针指向对象的实际类型调用相应的函数。当类的继承关系中没有使用多继承时,对象的虚函数表结构还相对简单;然而继承中出现多集成时,问题就变得复杂起来了。 有如下的一个例子:c.

2020-10-12 11:26:50 1198

原创 gem5运行SPECCPU2017benchmark

title: gem5运行SPECCPU2017benchmarkdate: 2020-10-11 15:39:06description: ‘如何在GEM5中运行SPECCPU 2017benchmark,实现两个平台的协同仿真’系统环境配置 硬件:CPU: Intel® Core™ i7-6700K CPU @ 4.00GHz 4核 8 线程内存16G硬盘 2T HDD+512G SSD 软件:Ubuntu 18.04 LTSGCC/G++/FORTRAN 7.5.0pyt.

2020-10-11 22:47:32 3513 3

原创 gem5获取bench的访问内存信息

title: gem5获取bench的访问内存信息date: 2020-09-27 19:54:28description: 获取benchmark的内存访问信息简介 获取gem5的bench的内存访问信息的主要原理来自于gem5提供的调试(debugging)支持. gem5提供了的调试标志(debug flags)来输出运行仿真的运行时信息。gem5提供了从内存系统到CPU的全系统仿真能力,提供了许多相关的gebug flags 以使我们可以更好的跟踪我们的仿真。gem5 default.

2020-09-27 20:59:02 629

原创 gem5运行SPECCPU2006benchmark

title: gem5运行SPECCPU2006benchmarkdate: 2020-09-22 21:55:33description: 如何在GEM5中运行SPECCPU 2006benchmark,实现两个平台的协同仿真gem5运行SPECCPU 2006benchmark前言 最近在做实验,准备在GEM5中运行SPECCPU 2006的benchmark。系统环境配置 硬件: CPU I5-4500 4核 内存8G 硬盘 1T 软件: Ubuntu 18.04 LTS GCC/G

2020-09-23 19:23:53 3827 25

转载 值得推荐的C与C++框架和库

title: 值得推荐的C与C++框架和库date: 2020-08-05 11:25:35toc_number: true值得推荐的C/C++框架和库转载:EZLippi-值得推荐的C/C++框架和库值得学习的C语言开源项目Libeventlibev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),.

2020-08-05 15:07:29 1351 1

原创 C语言标准

C语言标准发展C语言的起源 1972年,贝尔实验室的丹尼斯.里奇(Dennis Ritch)和肯.汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。然而C语言并不完全是里奇突发奇想而来,他是在B语言(汤普逊发明)的基础上进行设计。C语言设计的初衷是将其作为程序员使用的一种编程工具,因此,其主要目标是成为有用的语言。C语言标准 目前,有许多C实现可用。在理想情况下,编写...

2020-02-27 14:48:07 345

原创 C与C++的区别

C和C++的区别 参考:C Primer plus 6th 在很大程度上,C++是C的超集,这意味着一个有效的C程序也是一个有效的C++程序。C和C++的主要区别是,C++支持许多附加特性。但是,C++中许多规则与C稍有不同。这些不同使得C程序作为C++程序编译时可能以不同的方式运行或者根本不能运行。 C99标准的发布使得问题更加复杂,因为有些情况使得C更接近C++。例如,C99标准允许在代...

2020-02-27 14:46:49 496

原创 C11关键字_Static_assert

C11新增关键字_Static_assert C11标准新增了一个关键字_Static_assert,下面来介绍一下它的相关用法和注意事项。用法 和C11以前的断言assert()表达式有些类似。assert()表达式是在运行时检查。而C11新增的_Static_assert声明可以在编译时检查assert()表达式。因此,assert()可以导致正在运行的函数中止,而_Static_ass...

2020-02-27 14:45:33 1348

原创 C语言指针与多维数组

指针与多维数组的关系 最近在复习C语言,学到C指针的时候,发现指针与多维数组间存在着一些很有意思的问题,这也是在我们使用指针时容易出现问题的地方。先从一个例子开始:int zippo[4][2]; 这个例子声明了一个4x2共8个int类型的二维数组。数组名zippo是该数组首元素的地址,所以zippo的值和&zippo[0]的值相同。而zippo[0]本身是一个内含两个整数的数组,...

2020-02-27 14:43:34 370 1

原创 C语言数据存储类别

C语言存储类别与变量存储类别相关的C语言关键字 关键字:auto extern static register _Thread_local如何区别变量的存储类别 内存用于储存内存中的数据,数据的存储类别取决于它的存储期,作用域和链接。 存储期可以是静态的,自动的或动态分配的。如果是静态存储期,在程序开始执行时分配内存,并在程序运行时都存在。如果是自动存储期,在程序进入变量定义所在的块时分...

2020-02-27 14:41:54 244

原创 C语言缓冲区

C语言缓冲区 在编写C语言的交互式程序时,在和程序进行交互的过程中,不知不觉地用使用到了缓冲区的概念。下面来了解一下C语言的缓冲区。为什么要有缓冲区 首先,把若干字符作为一个块传输比逐个发送字符节省时间;其次,如果用户打错字符,可以直接通过键盘修改错误。当最后按下Enter键时,发送的才是正确的输入。缓冲区的分类 C语言在不同的地方根据需要使用不同的缓冲区。缓冲区分为两类:完全缓冲I/O...

2020-02-27 14:39:18 497

原创 C语言关键字和保留标识符

C语言关键字和保留标识符关键字 关键字是C语言的词汇。它们对于C语言比较特殊,不能用他们作为标识符(如,变量名)。许多关键字用于指定不同的类型。如int。还有一些(如if)语句用于控制程序中语句的执行顺序。下表列出了所有的C语言关键字,包括C11标准中出现的。关键字标准描述autoK&R C表明有意覆盖一个外部变量定义或者强调不要把该变量改为其他存储类别...

2020-02-27 14:37:30 2617

原创 C语言中输入输出所有格式控制符

title: C语言中输入输出所有格式控制符date: 2020-01-16 17:02:06description: C语言输入输出的所有格式控制详解C语言中输入输出所有格式控制符 最近在重温C语言,发现C语言的输入输出函数scanf和printf函数在控制输入输出时有许多控制符来控制输入输出数据的格式。于是就打算来整理一下。参考百度百科词条 scanf()是C语言中的一个输入...

2020-01-16 19:34:54 20002 2

原创 使用免费CDN服务加速Github博客

title: 使用免费CDN服务加速Github博客date: 2020-01-15 18:58:14keywords: 免费CDN 加速github 个人博客 最近发现部署在github上的个人博客网站访问加载的时间越来越久了,本身Github就已经很慢了,这个加载的速度令人难以接受,特别是对于有图片等比较大的文件需要加载的时候。于是开始考虑有没有什么方法能加速一下。 最好的方法当然是...

2020-01-15 20:33:32 8433 4

原创 如何在代码中计算时钟周期数

title: 如何在代码中计算时钟周期数date: 2020-01-02 20:33:57description: 如何在代码中计算时钟周期数如何在代码中计算代码执行的时钟周期数 有的时候,需要在代码中获取代码运行的时钟周期数。那么,怎么获取到某段代码在运行时的时钟周期数呢?通过获取程序运行时间 在代码中直接计算一个程序的时钟周期是不容易的。但是计算一个程序的执行时间却是比较容易的。...

2020-01-05 22:25:07 6660

原创 Huffman算法实现文件压缩解压

title: Huffman算法实现文件压缩解压date: 2020-01-02 20:33:11description: 基于Huffman编码算法实现文件压缩解压原文网址Huffman算法实现文件压缩解压前言 哈夫曼编码是一种贪心算法和二叉树结合的字符编码方式,具有广泛的应用背景,最直观的是文件压缩。下面讲述如何用哈夫曼编解码实现文件的压缩和解压。哈夫曼编码的概念 哈夫曼树又...

2020-01-02 21:06:47 1351

原创 http-https代理服务器的代码实现

title: http/https代理服务器的代码实现date: 2019-12-22 16:57:42dscription: 代码实现一个http/https代理服务器的代码实现原文地址https://tomsworkspace.github.io/2019/12/22/http-https代理服务器的代码实现/http/https代理服务器的代码实现代理服务器工作原理 代理服务器作...

2019-12-22 18:24:22 5031

原创 通过修改注册表来更改IE代理

title: 通过修改注册表来更改IE代理date: 2019-12-22 16:16:39description: 通过修改注册表来更改IE浏览器的代理设置原文地址https://tomsworkspace.github.io/2019/12/22/通过修改注册表来更改IE代理/通过修改注册表来更改IE浏览器的代理设置一、什么是注册表 注册表是windows操作系统、硬件设备以及客户...

2019-12-22 18:21:06 2658 1

原创 修改Windows系统注册表并使其立即生效

title: 修改Windows系统注册表并使其立即生效update: 2019-12-22 15:38:06description: 修改Windows系统注册表并使其立即生效的方法原文地址https://tomsworkspace.github.io/2019/12/22/修改Windows系统注册表并使其立即生效/什么是注册表 注册表是windows操作系统、硬件设备以及客户应用程...

2019-12-22 18:18:09 15964

原创 GPU的应用与发展

title: GPU的应用与发展date: 2019-12-07 14:54:05description: CPU与GPU的区别 GPU的应用与发展1. GPU的起源  作为计算机中主要计算单元的中央处理器CPU(Central Process unit)经过了50多年的发展,已经具有很高的运算速度,CPU受工艺和功耗的约束时钟频率已经到达了极限,很难再有提高[1]。但随着图形图像处理技...

2019-12-07 17:05:59 1984

原创 中国智能硬件调研报告

title: 中国智能硬件调研报告update: 2019-12-07 14:53:27description: 中国智能硬件调研一、介绍  随着万物互联时代的到来,硬件智能化成为全社会的共识,在此背景下,智能硬件成为全球发展 最快、市场潜力最大的行业之一。由于政府、科技企业的高度重视和大力投入,智能硬件产业得到了快速发展,出货量、装机量和市场规模显著提升。  随着智能化、互联网化与社...

2019-12-07 17:03:19 5138 1

原创 MIPs32寄存器

title: Mips-registerdate: 2019-12-07 14:54:25description: Mips 32个MIPs寄存器的作用一. 简介 MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下: 下表描述32个通用寄存器的别名和用途REGISTERNAMEUSAGE$0$zero常量0(constant ...

2019-12-07 16:47:08 1846

原创 linux四级页表及其原理

title: Linux-Arm page tabledate: 2019-11-26 16:44:04description: linux四级页表及其原理一.多级页表的概念  介绍页表之前,我们先来回顾一个操作系统里的基本概念,虚拟内存。1.1 虚拟内存  在用户的视角里,每个进程都有自己独立的地址空间,A进程的4GB和B进程4GB是完全独立不相关的,他们看到的都是操作系统虚拟出来的...

2019-11-26 17:35:22 5437 3

原创 多种方法解决计算机程序中出现.DLL文件丢失的问题

title: DLL-losedate: 2019-11-21 15:55:47description: 解决计算机程序中出现.DLL文件丢失的问题  在安装某些软件,我们正准备开开心心地打开,哦豁,duang的一声弹出一个框框。就像下面这样这时候是不是一筹莫展呢?别灰心,这类问题大多数还是能解决的。1. DLL文件的概念1.1 什么是dll文件  DLL(Dynamic Li...

2019-11-21 16:44:47 7488

原创 CPU 与 Memory 内存之间的三级缓存的实现原理

title: CPU Cachedate: 2019-11-17 20:20:30keywords: cache “CPU cache” “三级缓存” 缓存映射 cache原理 多级cache TLBLinux的CPU cache一. CPU 与 Memory 内存之间的三级缓存的实现原理1.1 cache 存在的原理  引入 Cache 的理论基础是程序局部性原理,包括时间局部性和...

2019-11-18 10:35:50 3489

原创 搭建个人博客

title: 搭建个人博客 date: 2019-11-13 16:36:37对于常年需要学习新东西的人们,经常想把学过的一些东西整理一下。于是写博客就成了很多人整理自己学习过的东西的很好的方式。有人选择在一些成熟的平台上管理自己的博客,比如知乎,CSDN,简书这些平台。不过在别人的平台上写东西很容易受到各种限制,内容也有各种各样的要求。哪有比自己搭一个私人博客网站更炫酷(装*)的呢!!!...

2019-11-15 20:56:57 368

空空如也

空空如也

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

TA关注的人

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