[英]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.