常量指针C++和优化,它们更快吗
constant pointers C++ and optimization, are they faster?
如果
- 常量指针比普通指针快还是慢?(常量指针是一个不能更改其地址的指针)声明为,int*const x
- 指向常量int的指针比指向int的指针快?const int*x
- 指向常量int的常量指针比指向int的指针快?例如int const*const x;int*y。。。那么,x会比y快吗?(如果它们用于数组索引)
干杯,
它们可能更快,但不一定必须更快。
底线是使用const正确性来防止诚实的程序员犯错误,使代码更直观,而不是为了提高性能。大多数现代编译器都会自动处理它。
通常,编译器不"关注"某个东西是否为const
,而是使用其他启发式方法来确定指针是否需要在使用之间重新加载。
当然,如果你有一个以指针为参数的函数,它绝对不会有什么区别。如果您使用了一个全局变量,那么编译器可能会考虑"好吧,它是const
,所以我不会每次都重新加载它"。但它不太可能真正产生影响。指针的并行更改无论如何都是UB(您应该使用原子变量)。如果在代码中间调用了一个函数,而编译器无法内联[或"跟随"]该函数,那么它很可能无论如何都必须重新加载指针。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 何时在引用或唯一指针上使用移动语义
- QMetaObject invokeMethod的基于函数指针的语法
- 如何从 std::atomic 中提取指针 T<T>?
- 如何在 C# 中映射双 C 结构指针?
- C++将浮点指针值舍入为小数位数
- 为什么++(*p)更改指针值
- 调整大小后指向元素值的指针unordered_map有效?
- 正在将指针转换为范围
- 使用指向成员的指针将成员函数作为参数传递
- 将OpenCV C++重写为EmguCV C#-如何使用指针
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错