2013-06-24 84 views
1

的typedef在C中,指針和用C

int* a, b; 

將使a整數指針和b的整數。

這是怎麼回事? b是一個整數還是一個整數指針?

typedef int* foo; 
foo a, b; 
+0

整數指針。 – 0decimal0

回答

11

在C,typedef不是預處理指令:與#define,它不是一個文本替換。它爲現有類型提供了一個替代名稱,因此ab都是相同類型 - 即foo,這是int*的別名。此外,你可以這樣寫:

foo a, *b; 

使aint*bint**

+0

*說* typedef'「創建一個命名類型* *有點誤導。它爲現有類型創建一個新名稱。 –

+0

此類型的'int *'或'struct s *'已經存在。你必須能夠將類型命名爲'typedef'。 –

+0

@KeithThompson檢查編輯,應該會更好。 – dasblinkenlight