Electronic Joint Business

Solution for E-Business

操作系统开发初体验(2)C++ 支持代码和控制台

在开始阅读第二篇文章前,我建议你翻阅上一篇文章,不然,接下来的内容可能就用处不大了。 现在我们需要一些支持代码,G++ 会用到其中的一些,不过我们增加了更多的代码以避免奇怪的错误。这里我们要添加的代码有: 对构造器的调用 提供 new 和 delete 的实现 在 GCC 无法调用虚拟方法的时候提供一个方法以供调用。 除了上述三个,还有就是:据说有些操作系统会在内核代码结束的地方调用析构函数,但我没看过这样的案例,大多数多任务操作系统都会在 main 函数的末尾进入无限循环,这样定时器 IRQ 就可以来接管任务。(要晚很多) 首先,我们需要调用构造函数。链接脚本可以指出这些构造函数的指针起始和结束的地址。要调用它们,我们要做只是遍历它们。虽然链接器有可能会弄错顺序,不过概率很低。至少在本系列文章中,我们还是可以信任 GCC 的。 要调用构造器,我们可以使用下面的代码: extern "C" void LoadConstructors() {     //This function pointer refers to the first global constructor     extern int (*firstConstructor)();     //Same as the above, but refers to the end of the […]

, ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.