# re: CONST、TYPE 和 星號 的故事 回復 更多評論
2008-10-04 16:22 by
unittype -> "int" '數據類型
unittype -> "const" unittype '數據是常量類型
ptrtype -> unittype
ptrtype -> ptrtype "*" '指針類型
ptrtype -> ptrtype "*" "const" '指針是常量類型
為什么需要最后一項呢?其實根據表達式的一般設計,需要優先級什么的加一個括號就行了。也就是說int*const原本可以寫成const(int*)。的可惜TM函數指針又是那個鳥樣,所以就搞得這么復雜了。
上面的語法安排是優先級組合的典型寫法,也就是說這里前綴比后綴優先級更高。因此const int*就是(const int)*。
# re: CONST、TYPE 和 星號 的故事 回復 更多評論
2008-10-06 10:10 by
可以這么看:以*為界,const在*前的是限定*p,在*后面的是限制p。前者限定p指向的值,后者限定指針p。