繁体   English   中英

const 指针 vs 指针:C++

[英]const pointer vs pointer: C++

我是 C++ 的新手,正在尝试弄清楚我应该做什么。

以下选项之间的性能是否存在差异:

const DATATYPE* name

对比

DATATYPE* name

在这种情况下,实际上不应该有任何性能提升,因为您示例中的关键字 const 仅告诉编译器指针访问将仅限于只读访问(这只能提高性能,例如在具有互斥保护或原子指针)。 但是指针本身将一个变量!

但是,如果您打算使用指向只读值的常量指针,则必须像这样声明它:

const DATATYPE *const name

即使在这种修改后的情况下,大多数编译器也不应该看到任何性能改进,因为好的编译器会自动检测在给定代码中是否确实将某些内容视为常量和/或只读实体,然后在没有程序员不得不到处为多余和过多的“const 修饰”而烦恼。 (并不是说所有 const 的使用都是多余的——远非如此,例如 const 显式用于定义只读实体,这使得 API 变得良好且安全。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM