typedef long a;
extern a int c;
嗨上面的代码中给出了类似In function 'main': Line 7: error: two or more data types in declaration specifiers
ç的typedef
但是当同样的“A”在第二行是由长取代它工作完全正常的错误。 这工作完全正常
typedef long a; extern long int c;
请解释为什么会发生这种情况
typedef long a;
extern a int c;
嗨上面的代码中给出了类似In function 'main': Line 7: error: two or more data types in declaration specifiers
ç的typedef
但是当同样的“A”在第二行是由长取代它工作完全正常的错误。 这工作完全正常
typedef long a; extern long int c;
请解释为什么会发生这种情况
long int
是一个类型名。
type-alias-name type-name
被解析为即使type-alias-name
为long
和type-name
是int
别名两种类型。
A typedef
不是宏。
一旦你有一个typedef
你不再有文本“INT”那正好可以与文字“长”作出新的类型合并。这是它自己的一流类型,它会在同一个声明中与另一类型冲突。
正如你可以看到[点击这里] [1]长已经是一个类型 [1]:http://en.wikipedia.org/wiki/C_data_types –
,'long'被视为'的缩写长整型“。 “int”意味着例如“long int int”。 – BLUEPIXY