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 类型。虽然在这种情况下语法允许交换 typedefint,但您通常不会这样做,因为它会降低可读性。

【讨论】:

是的,因为typedef是一个decl-specifier,它可以放在类型之前或之后,就像const一样。以前从未注意到这一点。 #define ALSO_KNOWN_AS typedef /* ;-) */ 哦。上帝。是严格意义上的C++ 还是C99 @Lambdageek 那是 awesome (虽然我永远不会使用它,因为definething,因为它只会让读者感到困惑......函数声明typedef 已经够令人困惑了...)。【参考方案2】:

typedef 是一个 decl 说明符,因此它的语法规则与 conststatic 相同。它可以像那样移动,并且意味着同样的事情。

【讨论】:

不,typedefstorage-class-specifier 都是 decl-specifier 的一种,但 typedef 不是 存储类说明符.

以上是关于C++ 中不寻常的 typedef 使用的主要内容,如果未能解决你的问题,请参考以下文章

C++ typedef typename 作用

关于C++ typedef list<类名>:iterator iterator;出错

令人困惑的 typedef 涉及类范围

C ++检查是不是定义了typedef [重复]

我啥时候应该在 C++ 中使用 typedef?

C++中typedef是啥意思啊