2013-03-08 39 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