
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
由本图可知, main 函数对fork 函数的调用。fork 函数实际是定义在main.c文件中的内联函数。编译时候,不存在对 fork 的调用。直接抽取fork中的代码就是那些汇编代码,进入了 main函数,对 中断int 80 H 的 调用后,返回值存储在EAX寄存器里。压入的中断栈帧指向int 80h 的下一行代码,行号 160 所示。#(2)看linux 0.11 源码是 sourcein

如上图所示,显示了 c++ 语法里的一种不常见的应用。若没有对某个形参的后续使用的要求,可以不提供形参名的,也能编译通过。这么写法的作用,可以以第一个参数的类型不同,来实现函数的重载。在阅读源码,在vs2019上,这个类里就使用了无名形参。

(1)例如 cout << "ddddddddddddddddddd"。当输出字符太长,就需要换行。疑问是如何写代码,才可以保证源代码中的字符串换行被正确编译呢?测试一下,如下图可见,如此换行,源代码中的字符串可以被正确编译。

(1) 静态断言,就是在编译时候,让编译器测试一下, static_assert( bool a , “字符串”)的第一个参数,若 第一个参数为 true ,则表明程序可以被编译。否则,编译器拒绝编译。这是为了满足某些代码在语法语义方面的要求。

查找某一节点的祖先节点,递归思路是,若某一节点的左右子节点即为所求,则输出该根节点,结束递归不再查找。否则递归其左右两棵子树,若其左右两棵子树里能找到所需节点,则仍输出该节点,作为所求节点的祖先节点。遇到空节点直接返回上层函数。这里函数会递归调用本身多次,每次在函数体里,查找核对的是根节点的左右子节点。并不核对根节点本身是否是所求节点。那么我们会有疑问,这样的查找是否是不重不漏呢?答案是确保了
(1) 都知道,在 vs2019 里用 typeid 打印的类型不大准,会主动去掉一些修饰符, const 和引用 修饰符会被去掉。但也可以给咱们验证学到的代码知识提供一些参考。那么今天发现其还有 raw_name 成员函数,这个函数会打印的更全面么?

深度优先遍历,是遍历图的一种思路,用递归的方法,依次遍历完给定顶点的所有子图,因为我们不能叫做该顶点的所有子树。子图就是依该顶点的邻接点为代表的子图。遍历过程中,不允许出现重复顶点,直至路径结束,遍历不到不重复的新的顶点;若是出现了与路径头顶点相同的顶点,说明出现了一条简单回路,即为所求。所以该题目是在DFS深度优先遍历的基础上进行的。 函数DFSFindPath:依次查找包含各个顶点的所有







