这是凭记忆的,所以我可能会误用几个词,但意思应该可以理解
我目前在大学,主修编程 - 我们开始使用 C++,当我们开始使用数组时,我们的 C++ 老师(一个有奇怪想法和编程规则的老师,比如不允许任何评论)告诉我们应该使我们的数组大小为 4 的倍数,以提高效率:
char exampleArrayChar[ 4 ]; //Allowed
float exampleArrayChar[ 6 ]; //NOT Allowed
int exampleArrayChar[ 8 ]; //Allowed
他说这背后的原因是因为计算机进行内存分配的方式。
计算机以四个字节为一组为每个数组元素分配内存地址/位置 - 因此在 2 个内存组中完成了一个 8 元素数组。
所以问题是,如果你创建一个大小为 6 的数组,它将分配 2 组 4,但随后将这些字节中的 2 个(8 个字节中的)标记为无效/无效,使它们无法使用,直到整个数组被释放记忆。
虽然这在我看来对于其他计算机数学来说是合理的(例如 1gb = 1024mb 而不是正好 1000),但我有兴趣知道:
- 这是多么真实,以及这样做的好处是什么(如果有的话)
- 这只是 C++ 吗?(我认为不会,但仍然值得一问)
- 只是有关这方面的更多信息-例如,为什么是4?计算机数学通常不是二进制的,因此不是 2 的吗?
在网上环顾四周,我一直找不到任何主要用途或相关的东西。