假设我有一些函数只接受一个指针参数,不访问全局变量,并且不以“腥”的方式生成另一个指针(即它可能需要本地的地址但不生成地址或从另一个线程获取它等)。用restrict
标记指针是否有用,还是没用?换句话说,编译器是否将这些指针参数视为隐式restrict
ed?
此外,当函数可能使用malloc()
或类似的东西时也会出现同样的问题(因此可能会出现混淆的恐惧)。
答案 0 :(得分:0)
如果有问题的函数也可以直接访问全局变量,那么它很有用 - 将restrict
放在指针上告诉编译器你不会以任何方式访问指针所指向的任何内容。指针。因此,特别是,您读取或写入的任何全局变量都不会使用指针进行别名。