2013-03-08 61 views
-4

我知道typedef被用作別名。但是如果我在這種形式中使用typedef,無論編譯器是拋出錯誤還是類型被重新定義爲char或者仍然與int相同,但只是char作爲其同義詞?這可能嗎? typedef int char?

+4

發生了什麼當你嘗試過嗎? :) – 2013-03-08 02:32:36

+0

呃...讓我爲你編譯... – Clifford 2013-03-08 09:43:03

回答

1

您不能重新定義內置類型,也不能使用關鍵字作爲typedef的名稱。

2

您無法重新定義內置類型。編譯器會抱怨語句的語法。這裏是你的一個說明性的例子,如果你沒有自己嘗試一下:

的main.c:

typedef int char; 
int main() { 
    return 0; 
} 

gcc的輸出,當你嘗試編譯:

main.c:1: error: two or more data types in declaration specifiers 
main.c:1: warning: useless type name in empty declaration