数组 – C – 缓存行和关联
走得更远但是什么告诉我,arr[4]不在一个会导致缓存行加载的地址而不是arr[7]?解决方法就你的主要问题而言,是的,你在两种情况下都是正确的.在第二种情况下,在加载arr[7]并且可能希望继续向上的情况下,您应该注意,编译器或某些预取机制可能会考虑此类数据的spatiallocality,从而提高性能.更进一步,如果数组在内存中没有正确对齐,确实读取数组中的其他一些地址可能会导致缓存行加载而不是arr[7],但在这种情况下,对齐不是由您决定,而是由编译器决定.