将typedef用于整数类型时出现意外错误

时间:2014-05-10 01:23:21

标签: c++ g++ typedef

我已经google了,找不到其他有类似问题的人,这很奇怪,因为看起来人们会经常遇到这种情况。有人可以解释为什么这个片段会产生错误:

typedef long mytype_t;
void function(unsigned mytype_t foo) {}

但是这第二个几乎相同的片段不是吗?

typedef long mytype_t;
void function(mytype_t unsigned foo) {}

我在Ubuntu 14.04上使用g ++ 4.8.1。

1 个答案:

答案 0 :(得分:2)

typedef“parameters”的顺序是向后的 - 它应该是typedef long mytype_t。我真的很惊讶任何一个编译(VC ++拒绝两者)。

但即使在切换它们之后,它仍然不会让你使用unsigned作为typedef类型的前缀。