assert() //停止程序
register //放入快速缓存器
#include<cstdio>
#include<ctime>
#include<cassert>
#include<iostream>
using namespace std;
#define N 200
int a[N][N][N],b[N][N][N];
int main(){
clock_t cl;cl=clock();
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
for(int k=0;k<N;k++)
a[i][j][k]=i*j*k;
printf("%f\n", double(clock()-cl)/CLOCKS_PER_SEC);
cl=clock();
int *ptr=&b[0][0][0];
for(int i=0;i<N;i++){
int *ptri=ptr+i*N*N;
for(int j=0;j<N;j++){
int *ptrj = ptri+j*N;
for (int k=0;k<N;k++)
ptrj[k]=i*j*k;
}
}
printf("%f\n", double(clock()-cl)/CLOCKS_PER_SEC);
cl = clock();
for(int i=0;i<N;i++)
for (int j=0;j<N;j++)
for (int k=0;k<N;k++)
assert(a[i][j][k]==b[i][j][k]);//不同结束程序
printf("%f\n",double(clock()-cl)/CLOCKS_PER_SEC);
cl = clock();//放入寄存器
for (register int i=0;i<N;i++)
for (register int j=0;j<N;j++)
for (register int k=0;k<N;k++)
assert(a[i][j][k]==b[i][j][k]);
printf("%f\n",double(clock()-cl)/CLOCKS_PER_SEC);
return 0;
}