-5

我知道 typedef 用作别名。但是如果我以这种形式使用 typedef 编译器是否会抛出错误或类型被重新定义为 char 或者它仍然与 int 相同但只是 char 作为它的同义词?

4

2 回答 2

2

您不能重新定义内置类型。编译器会抱怨语句的语法。如果您没有自己尝试,这里有一个说明性示例:

主.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
于 2013-03-08T02:47:56.620 回答
1

您不能重新定义内置类型,也不能使用关键字作为typedef.

于 2013-03-08T02:41:24.067 回答