"int typedef" 的意思是什么?

52
我发现了C++中关键字typedef的一个新用法。
这个typedef声明是什么意思?
int typedef foo;

5
哇,这是新产品。它可以携带吗? - Blindy
1
是的,我已经尝试过了。它像 @Sven 说的那样有效。 - vivek
1
将这个添加到我今天不期而学到的事情档案中。 - AJG85
8
把这件事加入到永远不要做的清单里。 - Martin York
显示剩余3条评论
2个回答

43

这与

typedef int foo;

即它定义foo为类型int。虽然语法允许在此情况下交换typedefint,但通常不这样做,因为它会影响可读性。


10
是的,因为typedef是一个声明说明符,它可以放在类型之前或之后,就像const一样。以前从未注意过这一点。 - Ben Voigt
39
#define ALSO_KNOWN_AS 是一种 C 语言的宏定义,意思是“也被称为”,有点幽默的意味。 - Lambdageek
1
哦。天啊。那是严格的 C++ 还是 C99 - ZJR
1
@Lambdageek 非常棒(虽然我永远不会使用它,因为define的事情,而且它只会让读者感到困惑...函数声明typedef已经够令人困惑了...)。 - paercebal

20

typedef是一个声明说明符,因此它具有与conststatic相同的语法规则。它可以像它们一样移动,并且意义相同。


3
不,typedef存储类说明符都是声明说明符的一种,但是typedef不是存储类说明符 - Ben Voigt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接