聲明一個結構用typedef速記的typedef指針到恆定結構
typedef struct some_struct {
int someValue;
} *pSomeStruct;
,然後將它作爲一個參數與常量聲明一些功能,意味着「const的some_struct *變種」
void someFunction1(const pSomeStruct var)
原來變成
some_struct * const var
這也在ISO C標準的6.7.5.1節中說明在這種情況下,'const'適用於指針,而不適用於它指向的數據。
所以,問題是 - 是否有聲明指針指向const結構在用typedef缺兵少將的符號的方式,或者必須始終有它特殊的單獨聲明:
typedef const struct some_struct *pcSomeStruct;
void someFunction2(pcSomeStruct var)
這就是爲什麼我希望它缺兵少將:)雖然他們是完全明確的 – Ulterior
速記不一定是好事功能參數與堵塞的話:是'cpu'短的重要補丁更新或其他什麼東西?我喜歡清晰的..ness – pmg
@ user757808 - 我更喜歡在指針中看到「const」關鍵字,而不是看到「user_defined_const_pointer_typedef」,並且必須找出API用於const指針typedef的命名約定。每個知道C的人都知道'const int *'和'int * const'之間的區別。不是每個人都能自動看到'const some_struct'和'const_some_struct'之間的區別。 –