为整型使用typedef时出现意外错误

Unexpected error when using a typedef for an integral type

本文关键字:意外 错误 typedef 整型      更新时间:2023-10-16

我在谷歌上搜索了一下,没有找到任何有类似问题的人,这很奇怪,因为人们似乎会经常遇到这种情况。谁能解释一下为什么这段代码会产生一个错误:

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。

类型定义的"参数"的顺序是反向的——应该是typedef long mytype_t。我真的很惊讶这两个都被编译了(vc++拒绝这两个)。

但是,即使在切换它们之后,它仍然不允许您使用unsigned作为typepedef类型的前缀