【发布时间】:2018-01-26 18:49:35
【问题描述】:
typedef 说明符的语法:
typedef <existing_name> <alias_name>
例如:
typedef long unsigned int Int;
一切正常。
但是,如果我将typedef 放在声明中的任何位置,就像这样:
long unsigned typedef int Int;
然后,它也可以正常工作。
为什么?我们可以将typedef 放在声明中的任何位置吗?
【问题讨论】:
-
为什么不呢?
int short static someVar;也是有效的,对吧? -
因为 C 标准规定了这一点。阅读n1570
-
好但不好,你可以用谷歌搜索“typedef 声明排序”之类的东西。 -编辑你需要知道的 NVM
typedef是一个“存储类”,可以有效地找到欺骗。 -
C 标准说 从句法的角度来看
typedef只是一个存储类说明符,如extern或static,因此它可以与类型声明符。 -
@rsp 请不要在问题标题上放置语言标签,有专门用于此目的的标签字段。
标签: c++ c language-lawyer typedef storage-class-specifier