让CPU占用在给定的比例
让CPU占用在给定的比例 一段有意思的小程序, 可以让CPU占用维持在指定的比例(不考虑其他进程的影响)。 例如让CPU占用率维持在20%,基本原理是,让CPU在每100ms的时间里,线程工作20ms,休息80ms。 基本思路: 计算每个线程的工作和休息时间 …
|
333
|
|
301 字
|
6 分钟
IDA判断是否虚继承,C++菱形继承下的类布局
IDA中对于菱形继承中是否为虚继承的判断 最近遇到了一种菱形继承关系的类结构,在判断C1、C2是否为虚继承C上产生了疑问,因此这里写一篇博客来分析自己的一些技巧。 如何判断C1、C2是否是虚继承C? 一种比较简单的办法是通过查看typeinfo for C1的…
|
191
|
|
1834 字
|
36 分钟
正则表达式的不同风格:BRE、ERE、PCRE
写这篇文章的原因是,我在VScode上熟练使用正则表达式,但是当我在 grep、find、vim 等工具中使用正则表达式时,往往会遇到各种问题。即便在 VSCode 上正常工作的正则表达式,在这些工具中却突然失效,甚至报错,这让我感到非常困惑。直到今天,我才意…
|
590
|
|
2014 字
|
25 分钟
C++纯虚函数、纯虚析构函数、协变返回类型
虚函数 虚函数是通过基类指针或引用来实现多态性的一种方法。为了确保在运行时正确调用派生类中的函数,虚函数需要在基类中有一个具体的实现,即使这个实现可能从未被直接调用。这样做的原因包括: 基类实例的使用:虽然大多数情况下,基类的实例不会直接使用虚函数,但在某些情…
|
316
|
|
1687 字
|
25 分钟
C++ 虚函数 + 多重继承情况下,派生类对基类中同名虚函数的覆盖方式
先来看一段代码: #include <bits/stdc++.h> using namespace std; class base1 { public: virtual void fun() { cout << "base1" <…
|
203
|
|
292 字
|
6 分钟
GCC生成的符号名称的还原-demangle方法
在C++中,GCC编译器生成的符号名称(符号名修饰,或者mangled names)直接输出,阅读起来比较费劲,因为GCC为了保证每个类型或者函数的唯一性,按照特定方式生成了符号名称,有时我们需要查询到这些名称的含义时,往往比较复杂,不过好在cxxabi.h库…
|
340
|
|
420 字
|
8 分钟
网站主题推荐:BlueTex
github:typora-blueTex-theme 该主题就是我的个人博客主题,只不过我将其移植到typera中去了,目前在typora官网可以搜到。 部分内容还没有移植结束,例如代码块的颜色,这一部分因为兼容性等原因,移植难度较大,而且加上工作了有点忙,…
|
166
|
|
108 字
|
2 分钟
C++抽象类与接口
引入原因:为了方便使用多态特性,常在基类中定义虚函数,在很多情况下,基类本身生产对象是不合理的,例如动物作为一个基类可以派生出老虎、孔雀等子类,但是动物本身生成对象明显不符合常理。 因此为了解决上述问题,引入纯虚函数的概念,将函数定义为纯虚函数,virual …
|
334
|
|
1767 字
|
27 分钟
一次讲清楚结构体大小的计算
一次讲清楚结构体大小的计算 结构体大小的计算,可分为三类: 一般结构体 含有嵌套的结构体的 指定字节对齐数的结构体 在说明结构体大小计算方法之前,先介绍字节对齐。 字节对齐(Byte Alignment)在计算机系统中是一种优化机制,旨在提高内存访问的效率和系…
|
474
|
|
2759 字
|
43 分钟
GNU、MinGW、GCC、GDB、LLVM、Clang++、LLDB、cmake 傻傻分不清?
相信很多编程初学者,对以上这些常见名词都很熟悉,但都分不清楚,今天写这篇文章,一次性说清楚这些东西的作用。 GNU 首先参考wiki:https://zh.wikipedia.org/zh-cn/GNU GNU就是GNU's Not Unix!的缩写,GNU是…
|
418
|
|
4991 字
|
1 小时