将 restrict 应用于单个指针参数是否有用?
Is it ever useful to apply restrict to a single pointer parameter?
假设我有一些函数只接受一个指针参数,不访问全局变量,并且不以 "fishy" 方式生成另一个指针(即它可能接受本地地址但不生成地址或从另一个线程获取地址等)。用 restrict
标记指针是否有帮助,还是没用?换句话说,编译器是否将此类指针参数视为隐式 restrict
ed?
此外,当函数可能使用 malloc()
或类似的东西时,同样的问题(所以可能,可能,有点害怕别名)。
如果所讨论的函数也可以直接访问全局变量,这将很有用——将 restrict
放在指针上会告诉编译器,除了指针。所以特别是,您读取或写入的任何全局变量都不会与指针混淆。
假设我有一些函数只接受一个指针参数,不访问全局变量,并且不以 "fishy" 方式生成另一个指针(即它可能接受本地地址但不生成地址或从另一个线程获取地址等)。用 restrict
标记指针是否有帮助,还是没用?换句话说,编译器是否将此类指针参数视为隐式 restrict
ed?
此外,当函数可能使用 malloc()
或类似的东西时,同样的问题(所以可能,可能,有点害怕别名)。
如果所讨论的函数也可以直接访问全局变量,这将很有用——将 restrict
放在指针上会告诉编译器,除了指针。所以特别是,您读取或写入的任何全局变量都不会与指针混淆。