C++ 中不寻常的 typedef 使用
Posted
技术标签:
【中文标题】C++ 中不寻常的 typedef 使用【英文标题】:Unusual typedef use in C++ 【发布时间】:2011-11-21 09:20:28 【问题描述】:我在 C++ 中发现了关键字 typedef 的新用法。
这个 typedef 语句是什么意思?
int typedef foo;
【问题讨论】:
哇,这是一个新的。那是便携式的吗? 是的..是的。我已经尝试过了。它就像@Sven 所说的那样工作 将这个添加到我今天没想到要学习的东西存档 将此添加到从不这样做的列表中。 C++ crazy typedef : what is the point of allowing this syntax by the Standard? 的可能重复项 【参考方案1】:和这个一样
typedef int foo;
即它将foo
定义为int
类型。虽然在这种情况下语法允许交换 typedef
和 int
,但您通常不会这样做,因为它会降低可读性。
【讨论】:
是的,因为typedef
是一个decl-specifier,它可以放在类型之前或之后,就像const
一样。以前从未注意到这一点。
#define ALSO_KNOWN_AS typedef /* ;-) */
哦。上帝。是严格意义上的C++
还是C99
?
@Lambdageek 那是 awesome (虽然我永远不会使用它,因为define
thing,因为它只会让读者感到困惑......函数声明typedef 已经够令人困惑了...)。【参考方案2】:
typedef
是一个 decl 说明符,因此它的语法规则与 const
或 static
相同。它可以像那样移动,并且意味着同样的事情。
【讨论】:
不,typedef
和 storage-class-specifier 都是 decl-specifier 的一种,但 typedef
不是 存储类说明符.以上是关于C++ 中不寻常的 typedef 使用的主要内容,如果未能解决你的问题,请参考以下文章