shu*_*alo 2 c++ gcc pointers restrict-qualifier
我已经研究了__restricting C++代码中某些指针的效果,当通过GCC编译器进行编译时.
它转变为不仅运行时间保持不变,而且可执行文件似乎没有改变,以字节为单位的大小与之前完全相同.
我的GCC版本是
gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)
Run Code Online (Sandbox Code Playgroud)
虽然它在解析时接受了这个C++扩展,但在组装代码时它似乎并没有考虑到它.所以有一个原因,编译器不知道如何使用这个语义信息,或者处理这些信息是完全禁用的.
代码执行大量的数字运算,它希望它能够用于测试目的.你能帮我吗?
restrict限定符基本上是用户帮助编译器执行某些与别名相关的优化的一种方式.如果代码中已经存在这些优化机会,它们只会产生影响,因此restrict在编译器以前必须使用"更安全"(非优化)代码生成的情况下,使用它们会简单地启用它们.在其他情况下,restrict根本不会有任何影响.
因此,您restrict在代码中添加了一些限定符.但是它们中的任何一个是否在它们真正重要的环境中使用,即它们实际上为编译器提供了更多自由来优化代码?如果没有,您不应该期望您的代码发生变化.
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |