C 限制关键字的真实示例

问题描述

最近,我知道了 C 限制指针关键字,它可以改进指针别名的优化。

您可以在此处查看restrict关键字的详细信息。 (https://en.wikipedia.org/wiki/Restrict)

限制指针有很多简单而微小的例子..但我想知道是否有任何现实世界的限制指针项目?

任何使用限制指针的相关开源项目都会受到我的赞赏:)

谢谢。

解决方法

许多标准 C 库函数使用 restrict,例如 void *memcpy(void * restrict s1,const void * restrict s2,size_t n);

,

FastPFor 中使用了它,FastPFor 是 Daniel Lemire 的一个注重性能的库。请参阅:https://github.com/lemire/FastPFor/blob/master/src/bitpacking.cpp

在 C++ 中,它通常拼写为 __restrict__,因为 C 语言标准化了 restrict,但 C++ 没有(至少从 C++20 开始)。但它做同样的事情。

如果在它们之间复制数据,告诉编译器两个指针(或引用)没有别名对于性能来说非常重要。通常,查找具有多个相同类型的指针或引用参数的函数,并且其中至少有一个被写入。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...