摘要:
问题: 如何在不同特权级的代码段之间跳转执行? 一种新的描述符:门描述符(Gate Descriptor) 通过门描述符在不同的特权级的代码间进行跳转 根据应用场景的不同,门描述符分为: 调用门(Call Gate) 中断门(Interrupt Gate) 陷阱门(Trap Gate) 任务门(Ta
阅读全文
posted @ 2018-09-09 22:16
周伯通789
阅读(680)
推荐(0)
摘要:
保护模式小结: -使用选择子访问段描述符表时,索引值的合法性检测,这个检测是处理器做的 当索引值越界时,引发异常 判断规则:索引值*8 + 7 <= 段描述表界限值 段描述表界限值就是段描述表中的地址最大值 -内存段类型合法性检测,使用选择子给相应的段寄存器赋值的时候会进行这个合法性检测 具备可执行
阅读全文
posted @ 2018-09-09 18:57
周伯通789
阅读(953)
推荐(1)
摘要:
在C语言写的程序中,有时候没有包含头文件,直接调用一些函数,如printf,也不会报错,因为GCC内置和一些函数。如果包含了头文件,则去第三方库中链接这个函数,不再使用GCC内置的函数。每个编译器的内置函数也不一样,换成其他编译器,在不包含头文件的情况下,如果直接调用函数,如printf,则可能报错
阅读全文
posted @ 2018-09-08 20:16
周伯通789
阅读(983)
推荐(0)
摘要:
1. 本文目的:理清在各种继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容。 2. 说明:虽然复制构造函数属于构造函数的一种,有共同的地方,但是也具有一定的特殊性,所以在总结它的性质时将它单独列出来了。 3. 单继承、多继承、虚继承,既然都属于继承,那么虽然有一定的区别,但还
阅读全文
posted @ 2018-09-08 20:14
周伯通789
阅读(2394)
推荐(0)
摘要:
问题: 动态内存申请一定成功吗? 问题: new语句中的异常是怎么抛出来的? 一般我们会在new_handler函数中进行内存的整理,整理之后再次申请。 问题: 如何跨编译器统一new的行为,提高代码移植性? 全局定义new就是全局new操作符的重载。 最后两种方法是推荐的做法。 使用nothrow
阅读全文
posted @ 2018-09-08 19:13
周伯通789
阅读(293)
推荐(0)
摘要:
如何判断一个函数是否会抛出异常,以及抛出哪些异常? 如果是第三方库函数我们看不到实现,只能看到声明,如何判断是否会抛出异常呢? 解决方案: 问题: 如果抛出的异常不在异常规格列表中,会发生什么? 示例: bcc结果如下: linux结果如下: vs2010结果如下: vs中的处理方式是,抛出的异常被
阅读全文
posted @ 2018-09-07 21:57
周伯通789
阅读(214)
推荐(0)
摘要:
问题: 如果在main函数中抛出异常会发生什么? 上述实验结果: bcc结果: vs2010结果: linux结果: 自定义结束函数: 结果如下: 第10行的exit(1)保证所有的全局对象和局部静态对象都正常的析构。 将第10行的exit换成abort,则结果如下: 可以看到换成abort之后,不
阅读全文
posted @ 2018-09-07 21:18
周伯通789
阅读(252)
推荐(0)
摘要:
如何统计对象中某个成员变量的访问次数? 解法: 这里我们只能满足普通对象的访问统计,那么const对象呢? 完善解法,使得能统计只读对象的访问次数: 使用了mutable之后,只读对象名存实亡。 使用mutable可以完成const对象的访问统计,但是不使用mutable也可以完成这个需求。 使用指
阅读全文
posted @ 2018-09-06 23:21
周伯通789
阅读(281)
推荐(0)
摘要:
令人迷惑的写法: 示例程序: 上述程序可以正常编译通过。 有了class,为什么还要定义typename呢? 用class定义普通类型的泛指类型,容易产生迷惑性。 由于一个二义性问题,产生了typename: 示例程序: 第57行使用Test_1作为类型参数来使用模板可以编译通过,这意味着第50行被
阅读全文
posted @ 2018-09-06 22:52
周伯通789
阅读(290)
推荐(0)
摘要:
面试问题: 编写程序判断一个变量是不是指针? 指针的判别: 匹配顺序示例: 可以看到匹配顺序符合我们的结论。 定义一个函数模板和一个同名的变参函数,给的参数如果是指针,编译器会先匹配模板。不是指针的话只能匹配变参函数。 实验: 第41行我们看到输出了非法指令,这是为什么呢,因为变参函数是C语言的特性
阅读全文
posted @ 2018-09-06 22:13
周伯通789
阅读(173)
推荐(0)