就是比如
class matrix{
private:
int m[N][N];
public:
int* operator [] (int x){return m[x];}
}a;
a[0][0] 和 a.m[0][0] 会有性能差别吗,至少汇编代码有差别,看起来 a[0][0] 还更好
matrix d;
int modify(int x,int y,int z){
d.m[x][y] = z;
}
modify(int, int, int):
movsx rdi, edi
movsx rsi, esi
imul rdi, rdi, 65
add rdi, rsi
mov DWORD PTR d[0+rdi*4], edx
matrix d;
int modify(int x,int y,int z){
d[x][y] = z;
}
modify(int, int, int):
movsx rdi, edi
movsx rsi, esi
imul rdi, rdi, 260
mov DWORD PTR d[rdi+rsi*4], edx
gcc 9.3 -O2
请问这是什么情况