__restrict__ 或 __restrict 来识别 C99 中的这个特性
来源:互联网 发布:掌商大数据 编辑:程序博客网 时间:2024/06/10 18:46
我曾经读过一篇介绍 restrict 历史的文章,提出 restrict 的是某个在标准委员会中很有影响的大公司,他们设计的硬件体系和别人的有所不同,在他们的硬件上编译器可以很方便的实现 restrict 的功能,但是在其他的硬件平台上这个关键字毫无用处,所以当该公司把 restrict 提交到C++标准委员会的时候,被委员会毫不留情的拒绝了,而不知道是什么原因,在稍晚的ISO C99中却把 restrict 加入了标准。
ANSI 据绝的是noalias,
为了提高 Cray机器上的效率, ANSI C委员会提出过一种称为noalias的机制来解决这个问题,
用它来说明某个C指针可以认为是没有别名, 只是这种机制不成熟,这件事激怒了Dennis Ritchie,
拿他对C的标准化过程做了唯一的一次干预。他写了一封公开信说“noalias必须靠边站,这一点是不能协商的。”
后来Cray的Mike Holly又抓起了这个难题,向数值C语言扩充工作组和C++委员会提出了一种改进的反别名建议。
所建议的想法是允许程序员说明一个指针可以认为是没有别名的,采用的方式是将它说明为restrict。
这个建议C99采纳了,但标准C++拒绝了。
g++ 实际上也可以通过 __restrict__ 或__restrict 来识别 C99 中的这个特性
可参见
http://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html
ANSI 据绝的是noalias,
为了提高 Cray机器上的效率, ANSI C委员会提出过一种称为noalias的机制来解决这个问题,
用它来说明某个C指针可以认为是没有别名, 只是这种机制不成熟,这件事激怒了Dennis Ritchie,
拿他对C的标准化过程做了唯一的一次干预。他写了一封公开信说“noalias必须靠边站,这一点是不能协商的。”
后来Cray的Mike Holly又抓起了这个难题,向数值C语言扩充工作组和C++委员会提出了一种改进的反别名建议。
所建议的想法是允许程序员说明一个指针可以认为是没有别名的,采用的方式是将它说明为restrict。
这个建议C99采纳了,但标准C++拒绝了。
g++ 实际上也可以通过 __restrict__ 或__restrict 来识别 C99 中的这个特性
可参见
http://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html
- __restrict__ 或 __restrict 来识别 C99 中的这个特性
- restrict / __restrict / __restrict__ 关键字
- 关于C99中的新特性:指定初始化 Designated initializers
- C99扩展特性
- C99标准特性
- C99新特性
- C99特性简述
- C99标准新特性
- C99新特性(1)
- C99新特性(3)
- C99的新特性
- C99标准新特性
- C99的新特性
- C99新特性
- C99的新特性
- C99新特性
- C99 标准新特性
- c99新特性
- C99的restrict关键词
- 推荐三个 Steve Jobs 的 Chrome 主题
- 2013年社交网站广告营收达百亿美元
- Beep也疯狂,让你的主板也Happy起来吧
- 调查发现女人比男人更喜欢使用社交网站(组图)
- __restrict__ 或 __restrict 来识别 C99 中的这个特性
- FileRide——与众不同的社交网站
- C# (值类型/应用类型/内存框图)与对象深度/浅度复制/系列化/反系列化)
- 社交网站Quepasa以1亿美元收购myYearbook
- 现在可用:2011年9月更新的Windows Azure Platform Training Kit和新的Training Kit Web Installe预览
- KMP--字符匹配
- 织梦中通过dede:pagelist实现中英文分页效果
- 创业公司的CEO每周须必做的13件事
- 长翅膀的不一定是天使