Ai có thể giải thích dùm em từ khóa restrict trong C đc không em mù nó rồi!
Em có đọc cái này thì hiều là restrict sơ sơ! thì em làm chương trình runtime code như sau:
void timer1(int* restrict p, int* q){
clock_t begin = clock();
int kq;
for(int i = 0; i < 2; i++){
kq = *p + q[i];
printf("kq: %d\n", kq);
}
clock_t end = clock();
printf("result: %f\n", (double)(end - begin) / CLOCKS_PER_SEC );
}
void timer2(int* p, int* q){
clock_t begin = clock();
int kq;
for(int i = 0; i < 2; i++){
kq = *p + q[i];
printf("kq: %d\n", kq);
}
clock_t end = clock();
printf("result: %f\n", (double)(end - begin) / CLOCKS_PER_SEC );
}
luôn luôn thời gian thực thi của timer2 < timer1. Nhưng nếu đọc mã assembly thì con trỏ chứa biến restrict sẽ không cần load lại nếu nó là quá trị không bị thay đổi thì timer1 < timer2 chứ mà em làm lại timer2 < timer1. ai có thể thông não giúp em!