2013-05-14 74 views
0

據我所知:t_無論C標準還是POSIX中的保留名稱?

下劃線(「_」),並且開始 配置有兩種下劃線或下劃線跟着一個大寫 字母不管用的所有標識符是保留名稱

在Posix中:以'_t'結尾的名稱保留用於其他類型 名稱。

另外:頭文件SYS/stat.h儲備名稱前綴 「ST_」和「S_」。

我們可以使用「t_whatever」(例如t_node)來定義我們自己的類型嗎?

+1

參考[保留名稱](http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html)的更多。 .. – devnull 2013-05-14 09:21:06

+0

謝謝@devnull,問題從那裏引用 – 2013-05-14 09:23:04

回答

7

是的,你當然可以使用t_作爲前綴,這不是任何保留空間。

個人我不會推薦這樣做,但主要是因爲我不相信有一個前綴可以使類型名稱更明顯類型名稱是勝利,在很多情況下。

我看不到

t_node head; 

優於

​​

事實上,我認爲後者更具可讀性。在我看來,如果一個單詞是C中的一個類型或變量名稱,那麼通常情況下您會立即看到使用情況。

一種反對意見可能是,它可以使用sizeof時不清楚,例如考慮動態分配一個新的節點。很多人會這樣寫:

t_node *head = malloc(sizeof(t_node)); 

但我非常反對這種用法;我認爲這是更好地避免移交類型名稱到sizeof只要有可能,並使用變量,而不是,因此「鎖定」大小這是一件好事目的地類型:

node *head = malloc(sizeof *head); 

此外,像往常一樣,注意我永遠不會寫第一個例子,因爲我認爲它使得sizeof看起來像一個函數。我總是有一個空間:從glibc的手動

t_node *head = malloc(sizeof (t_node)); 
相關問題