我已经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。
答案 0 :(得分:2)
typedef“parameters”的顺序是向后的 - 它应该是typedef long mytype_t
。我真的很惊讶任何一个编译(VC ++拒绝两者)。
但即使在切换它们之后,它仍然不会让你使用unsigned
作为typedef类型的前缀。