我有一個結構
typedef struct hash_entry_{
char *string;
void *data;
struct hash_entry *next;
}hash_entry, *p_entry;
我p_entry
稍后在我的代碼中像這樣參考,
p_entry *temp = table;
這是否使 temp 成為雙指標,因為我在*
之前添加了一個額外的p_entry
. p_entry
當我可以將hash_entry*
其用作指向型別結構的指標時,我什至對添加代碼感到困惑hash_entry_
。
uj5u.com熱心網友回復:
這是否使 temp 成為雙指標
是的,它確實。但請使用術語指標對指標,不要將事物與double*
.
“匈牙利表示法”的方式以及p
在型別名稱前添加一個表示指標隱藏在其下方的其他混淆樣式多年來一直受到廣泛批評,最著名的案例是 Windows API。這是一種舊的、糟糕的風格,它拒絕消亡。
在現代編程中,有一個強烈的 C 程式員共識:
- 指標永遠不應該隱藏在下面
typedef
,因為正如您發現的那樣,包括撰寫代碼的人在內的每個人都非常困惑。 - 不應使用“匈牙利符號”和類似的樣式,因為它們令人困惑和危險。
你使用的本能hash_entry*
是合理的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/470453.html
上一篇:指標中的奇怪錯誤
下一篇:來自成員參考的C 結構參考