1
12
试试迈克·阿克顿的文章 here .限制是可怕的,因为不使用它的性能影响和不正确使用它的后果。 在您的例子中,听起来您可以安全地将restrict应用于所有三个指针,因为没有一个别名是相同的内存区域。但是,在第三个指针上使用它对性能几乎没有好处。 |
2
7
在这种情况下,是否 编码端 是否有限制;您已向编译器承诺没有任何别名 未编码的 和 编码的 所以读写不会互相干扰。 在这种情况下,限制很重要的真正原因是没有它,编译器就无法知道 编码的 不会影响读取 未编码的 . 例如,如果
然后每个人都写信给 编码的 会影响后续的每次读取 未编码的 ,因此编译器无法调度加载,直到写入完成。restrict向编译器保证两个指针不会影响同一内存,因此它可以提前安排足够远的加载,以避免管道阻塞。 |
3
4
我认为你是对的,它不会伤害你。循环指针(称为p)在循环结束时将等于encodendend。但是在循环之后不需要访问任何东西(从p或encodendend),所以这不应该是一个问题。我也不认为它会有帮助,因为没有任何东西是写或从encodendend读取的,所以没有什么可以优化的。 但我同意你的前两个限制应该真的有帮助。 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |