假设一个操作系统/内核是以C++为主要编程语言,不使用纯C的编程方式,而是基于完整的C++标准库构建的C标准库。这种情况可能吗?如果不行,为什么?
PS:我知道C库“是C++的一部分”,但假设它内部基于C++实现。
小更新:似乎我引起了对我的规则中“允许”的讨论。一般来说:C标准库实现应该尽可能地使用C++/
PS:我知道C库“是C++的一部分”,但假设它内部基于C++实现。
小更新:似乎我引起了对我的规则中“允许”的讨论。一般来说:C标准库实现应该尽可能地使用C++/
Right (tm)
。我主要考虑的是算法和在幕后处理静态类对象。我并没有真正排除任何语言特性,而是试图强调理智的C++实现。关于setjmp示例,我认为在这里使用有效的C(它将使用其他预实现的C++ C库部分或根本不使用任何其他库函数)不会违反我的“规则”。如果C++库中没有相应的对应项,为什么要争论它的使用。
setjmp
/longjmp
必须在调用者的堆栈上操作,因此要链接到它,你必须做更多的事情,不仅要遵守操作系统的调用约定,还必须使用它理解的堆栈布局。这就是我所说的不仅仅是一个库的意思。显然,你可以用几乎任何语言来实现整个C语言。就这个问题而言,我认为它是关于以一种rubenvb描述的提供库的方式逐步实现它。 - Steve Jessop