Open Veiasai opened 5 years ago
用于限定一个指针变量 表明该变量是唯一修改指向内容的入口 int * restrict p = malloc(10 * sizeof(int)) p[0] = 2 xxx return p[0]
int * restrict p = malloc(10 * sizeof(int))
p[0] = 2
xxx
return p[0]
像这种语句编译器不能确定中间代码是否用到p[0],这是个寻址访问,所以不能在读取p[0]的时候直接从寄存器中读取,而是要再次访问内存。 但restrict关键字则告诉编译器,只有限定变量能修改,所以可以优化。
用于限定一个指针变量 表明该变量是唯一修改指向内容的入口
int * restrict p = malloc(10 * sizeof(int))
p[0] = 2
xxx
return p[0]
像这种语句编译器不能确定中间代码是否用到p[0],这是个寻址访问,所以不能在读取p[0]的时候直接从寄存器中读取,而是要再次访问内存。 但restrict关键字则告诉编译器,只有限定变量能修改,所以可以优化。