C 和 C++ 是少数能准确描述内存中数据结构的语言。其他语言你定义一个数组或对象(一般只能放在 heap 上),语意倒是对的,但它往往有额外的内存开销。C/C++ 的 array of struct 或 array of array of struct 是紧凑的(也是在内存中连续的),可以做到一个多余的字节都没有。
C 和 C++ 也是少数能以不同的观点看待(解读)同一块内存的语言。你定义一个 array of Point { double x, y; },必要时可以把它当成 array of double 来处理(eg. 向量化/SIMD),别的语言少有这种能力。
不过 C 估计是唯一需要你手动释放内存的语言,用别的语言学数据结构往往学不到这个技能。
作者:陈硕
|
|