C语言restrict关键字的使用----可以用来优化代码
2014-11-16 17:01
387 查看
C99中新增加了restrict修饰的指针:由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的方法,仅当第二个指针基于第一个时,才能对对象进行存取。对对象的存取都限定于基于由restrict修饰的指针表达式中。
由restrict修饰的指针主要用于函数形参,或指向由malloc()分配的内存空间。restrict数据类型不改变程序的语义。编译器能通过作出restrict修饰的指针是存取对象的唯一方法的假设,更好地优化某些类型的例程。
[典型例子]
memcpy()在C99中,restrict可明确用于memcpy()的原型,而在C89中必须进行解释。
void *memcpy(void *restrict str1, const void *restrict str2, size_t size);
/*通过使用restrict修饰str1和str2来保证它们指向不重叠的对象*/
http://www.cnblogs.com/Leon5/archive/2011/10/06/2199750.html http://blog.csdn.net/swanabin/article/details/17915083 在vc2008中编译 会报错把restrict 改为__restrict就可以了
http://bdxnote.blog.163.com/blog/static/84442352010017185053/
由restrict修饰的指针主要用于函数形参,或指向由malloc()分配的内存空间。restrict数据类型不改变程序的语义。编译器能通过作出restrict修饰的指针是存取对象的唯一方法的假设,更好地优化某些类型的例程。
[典型例子]
memcpy()在C99中,restrict可明确用于memcpy()的原型,而在C89中必须进行解释。
void *memcpy(void *restrict str1, const void *restrict str2, size_t size);
/*通过使用restrict修饰str1和str2来保证它们指向不重叠的对象*/
http://www.cnblogs.com/Leon5/archive/2011/10/06/2199750.html http://blog.csdn.net/swanabin/article/details/17915083 在vc2008中编译 会报错把restrict 改为__restrict就可以了
http://bdxnote.blog.163.com/blog/static/84442352010017185053/
相关文章推荐
- C语言restrict关键字的使用
- C语言restrict关键字的使用
- java中提供了对正则表达式的支持。 有的时候,恰当地使用正则,可以让我们的工作事半功倍! 如下代码用来检验一个四则运算式中数据项的数目,请填写划线部分缺少的代码。 注意:只填写缺少代码,不要
- 奇葩的OBJ-C ~ 1 父类的类方法可以用来新建一个子类的对象 -- 使用关键字self
- 去掉代码中的空行和注释行,可以使用以下正则表达式替换。
- 代码编辑器之关键字染色, 优化了的方案
- 一段获得网卡地址的代码,可以用来做软件许可证用
- 支持多线程的日志类,可以在线程中使用,用来与主窗口通讯
- 如何优化C语言代码(程序员必读)
- 如何在VB中操作EXCEL(一段代码,两个可以使用的过程)
- 使用FxCop做代码检查和优化
- 加密和显示图片的PHP代码(可以使用)
- 如何优化C语言代码
- 如何优化C语言代码(程序员必读)
- luyikk Monster raid 一款使用C# 写的SYN 利器,完全代码共享,希望各位高手协助 优化.
- 一段获得网卡地址的代码,可以用来做软件许可证用.
- 一个简单的动态编译器,支持C#和VB.NET。当你想测试一些简单的代码的时候可以使用。
- 使用cvs的关键字来维护代码信息(zt)
- 如何优化C语言代码
- MyPage从Page派生,MyPage总有一个Label控件。以便以后从MyPage派生的页都可以直接使用Label?给个代码例子看看?