![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 70
brahmsjiang
这个作者很懒,什么都没留下…
展开
-
C++ lambda按引用捕获导致的空悬指针问题
该Wrap也有const版本和非const版本的重载,const版本在捕获类成员函数的指针时,对其用了按值捕获[&, f](即cmd),而非const版本在捕获类成员函数的指针时,对其默认用了按引用捕获[&](即cmd1)。在执行cmd.Execute()是没有问题,而执行cmd1.Execute()发生了crash,通过debug发现按引用捕获类成员函数指针,在Wrap()的时候可以取到类成员函数的地址,但一旦退出Wrap(),该类成员函数的地址不复存在。lambda可以按值捕获,也可以按引用捕获。原创 2024-07-08 19:01:16 · 432 阅读 · 0 评论 -
《Linux0.11源码解读》理解(一) 从开机到加载bootsec
计算机启动时, 内存(RAM)没有任何东西, 自然也无法跑操作系统. 但是可以执行固化在ROM里面的BIOS程序. 在按下电源键的一刻. CPU的cs和ip寄存器硬件被设置为0xf000和0xfff0, 于是cs:ip也就指向0xffff0这个地址, 而这个地址正是指向了ROM的BIOS范围(这里是0xfe000~0xfffff, 20根地址线全部范围0x0000~0xfffff, 这个范围包括RAM、ROM、其他map的外设).下的程序,它的中断调用都是建立在中断向量表基础上的。原创 2023-04-20 16:09:00 · 468 阅读 · 0 评论 -
cpu的位宽、操作系统的位宽和寻址能力的关系
cpu的位宽暂时没有严格的定义,但是一般从数值上来讲:cpu的位宽 = 数据总线的位宽 = cpu内部通用寄存器的位宽 = 机器字长放出一个百度百科对于机器字长的定义供大家理解概念:CPU的寻址能力与它的地址总线位宽有关,与数据总线宽度(CPU位宽=数据总线位宽)无关。16位CPU的地址总线位宽可以是20位,32位CPU的地址总线可以是36位,64位CPU的地址总线位宽可以是40位。NOTE:CPU内部寄存器之间、CPU和外设的数据交互是通过总线来实现的,下图展示了cpu和外部设备(存储器和IO)之间的总线转载 2022-06-30 16:44:04 · 3700 阅读 · 1 评论 -
对于何时调用构造函数、copy构造、赋值运算符的区分
有个Obj类:class Obj{public: Obj() : mem(0) { cout << "Obj()" << endl; } Obj(int n) : mem(n) { cout << "Obj(int n)" << endl; } Obj(const Obj& obj) { mem = obj.mem; cout << "Obj(const Obj& obj)" <<原创 2021-03-07 10:02:54 · 123 阅读 · 0 评论 -
C++引用拾遗
引用是变量的别名;在某种场合以引用替代指针是C++区别于C的一个显著特征;引用内部是用指针实现的。1. 如果将引用赋值给一个普通(非引用)变量会发生什么:int glbVar = 10;int& retRef(){ return glbVar;}int main(int argc, char* argv[]){ int tmp = 0; int* ptr_tmp = &tmp; tmp = retRef(); int&原创 2021-02-04 00:29:32 · 184 阅读 · 0 评论 -
C/C++ static 关键字
C:局部静态变量:在声明时即被首次初始化(默认为0),以后调用不再初始化。生命周期从初始化直到程序结束,保存在数据段。只对局部作用域可见。全局静态变量:在声明时即被初始化(默认为0),生命周期从初始化直到程序结束,保存在数据段。只对本文件可见。全局静态函数:只对本文件可见。C++:静态数据成员:不隶属于任何一个对象实例,可理解为类的一个属性。生命周期从初原创 2018-01-03 22:54:45 · 197 阅读 · 0 评论 -
两种分治排序:归并排序和快速排序(C语言)
归并排序:思想为:在对待排序列设置一个中心点,以此为界左右进行拆分。在左子序列和右子序列递归执行上述过程,直到每个序列只有一个元素,拆分不动为止。然后对相邻元素进行合并。待合并完成为一个大序列后,对相邻的大序列递归执行这个过程,到整个序列的左、右序列合并完了,整个排序便完了。合并思想为:搞两个指针分别指向左、右子序列的头元素。开辟一个新数组存放结果,大小等同于左右子序列的和。通过俩指针逐个...原创 2017-12-26 17:26:28 · 1390 阅读 · 0 评论 -
C++的内部链接、外部链接及inline函数的探讨
先是几个概念:编译单元:首先明确,只有源文件(.cpp/.c)才能被编译器编译。预处理器首先递归包含头文件,形成一个含所有必要信息的单个源文件,此源文件就是一个编译单元。我可将其理解为被预处理后,包含头文件的.cpp文件。内部连接:如果一个编译单元(.cpp)内的名称对编译单元(.cpp)来说是局部的,在链接的时候其他的编译单元无法链接到它且不会与其它编译单元(.cpp)中...原创 2018-01-05 21:11:32 · 1551 阅读 · 0 评论 -
单链表的创建和反转(C语言)
总是会想,等进入一个相对稳定的公司(环境)后,我再努力,再搞数据结构和算法、再搞懂公司的框架、再学好shell和python,时间总是充裕的。殊不知秉承着这样的思想,只是吃不起苦而找借口的一种变体罢了。生活总会以平等的方式来回报你。只要涉及当场手写代码的面试便碰壁,目前为止顺利的只有创业型小公司和外包而已。这想必也反映了我现在的水平吧。我祈求自己以后能将每一天物尽其用,走出自我易满足而选择ea原创 2018-03-03 14:01:33 · 954 阅读 · 0 评论