如何解决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 开始)。但它做同样的事情。
如果在它们之间复制数据,告诉编译器两个指针(或引用)没有别名对于性能来说非常重要。通常,查找具有多个相同类型的指针或引用参数的函数,并且其中至少有一个被写入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。