Tag: 低级

3D数组如何存储在C?

我知道C中的数组是按行优先顺序分配的。 因此,对于2 x 3arrays: 0 1 2 3 4 5 被存储在内存中 0 1 2 3 4 5 但是,如果我有一个2 x 3 x 2数组: 0 1 2 3 4 5 和 6 7 8 9 10 11 这些如何存储在内存中? 只是连续的像: 0 1 2 3 4 5 6 7 8 9 10 11 或者是其他方式? 还是取决于某些东西?

操作系统如何“制造”?

创build一个OS似乎是一个巨大的项目。 怎么会有人开始呢? 例如,当我将Ubuntupopup到我的驱动器中时,我的电脑如何才能运行它? (我猜这是我真正想知道的。) 或者,从另一个angular度来看,磁盘上可能存在的最小字节数量仍然是“运行”的操作系统? (对于这个问题,我很遗憾,我对这个问题一无所知,所以我不能说得很具体,我假装知道计算机是如何工作的,但是我对这个问题却一无所知。 )

这个callstack是如何工作的?

我试图深入了解编程语言的低级操作是如何工作的,特别是他们如何与OS / CPU进行交互。 我可能在堆栈溢出的每个堆栈/堆相关的线程中都读过每个答案,它们都很精彩。 但是还有一件事我还没完全理解。 在伪代码中考虑这个function,这往往是有效的锈代码;-) fn foo() { let a = 1; let b = 2; let c = 3; let d = 4; // line X doSomething(a, b); doAnotherThing(c, d); } 这就是我认为堆栈看起来像X行: Stack a +————-+ | 1 | b +————-+ | 2 | c +————-+ | 3 | d +————-+ | 4 | […]