假设我有一个 C 关键字列表,
int char long float double signed unsigned short const volatile
语法应该接受这些组合:
volatile unsigned long int
long unsigned volatile int
等等
但拒绝这样的事情:
unsigned singed short long
声明说明符列表中 C 类型说明符的合法组合的语法是:
OODS AtomicTypeSpecifier OODS
OODS EnumSpecifier OODS
OODS StructOrUnionSpecifier OODS
OODS TypeDefName OODS
OODS _Bool OODS
OODS _Complex OODS double OODS
OODS _Complex OODS double OODS long OODS
OODS _Complex OODS float OODS
OODS _Complex OODS long OODS double OODS
OODS char OODS
OODS char OODS signed OODS
OODS char OODS unsigned OODS
OODS double OODS
OODS double OODS _Complex OODS
OODS double OODS _Complex OODS long OODS
OODS double OODS long OODS
OODS double OODS long OODS _Complex OODS
OODS float OODS
OODS float OODS _Complex OODS
OODS int OODS
OODS int OODS long OODS
OODS int OODS long OODS long OODS
OODS int OODS long OODS long OODS signed OODS
OODS int OODS long OODS long OODS unsigned OODS
OODS int OODS long OODS signed OODS
OODS int OODS long OODS signed OODS long OODS
OODS int OODS long OODS unsigned OODS
OODS int OODS long OODS unsigned OODS long OODS
OODS int OODS short OODS
OODS int OODS short OODS signed OODS
OODS int OODS short OODS unsigned OODS
OODS int OODS signed OODS
OODS int OODS signed OODS long OODS
OODS int OODS signed OODS long OODS long OODS
OODS int OODS signed OODS short OODS
OODS int OODS unsigned OODS
OODS int OODS unsigned OODS long OODS
OODS int OODS unsigned OODS long OODS long OODS
OODS int OODS unsigned OODS short OODS
OODS long OODS
OODS long OODS _Complex OODS double OODS
OODS long OODS double OODS
OODS long OODS double OODS _Complex OODS
OODS long OODS int OODS
OODS long OODS int OODS long OODS
OODS long OODS int OODS long OODS signed OODS
OODS long OODS int OODS long OODS unsigned OODS
OODS long OODS int OODS signed OODS
OODS long OODS int OODS signed OODS long OODS
OODS long OODS int OODS unsigned OODS
OODS long OODS int OODS unsigned OODS long OODS
OODS long OODS long OODS
OODS long OODS long OODS int OODS
OODS long OODS long OODS int OODS signed OODS
OODS long OODS long OODS int OODS unsigned OODS
OODS long OODS long OODS signed OODS
OODS long OODS long OODS signed OODS int OODS
OODS long OODS long OODS unsigned OODS
OODS long OODS long OODS unsigned OODS int OODS
OODS long OODS signed OODS
OODS long OODS signed OODS int OODS
OODS long OODS signed OODS int OODS long OODS
OODS long OODS signed OODS long OODS
OODS long OODS signed OODS long OODS int OODS
OODS long OODS unsigned OODS
OODS long OODS unsigned OODS int OODS
OODS long OODS unsigned OODS int OODS long OODS
OODS long OODS unsigned OODS long OODS
OODS long OODS unsigned OODS long OODS int OODS
OODS short OODS
OODS short OODS int OODS
OODS short OODS int OODS signed OODS
OODS short OODS int OODS unsigned OODS
OODS short OODS signed OODS
OODS short OODS signed OODS int OODS
OODS short OODS unsigned OODS
OODS short OODS unsigned OODS int OODS
OODS signed OODS
OODS signed OODS char OODS
OODS signed OODS int OODS
OODS signed OODS int OODS long OODS
OODS signed OODS int OODS long OODS long OODS
OODS signed OODS int OODS short OODS
OODS signed OODS long OODS
OODS signed OODS long OODS int OODS
OODS signed OODS long OODS int OODS long OODS
OODS signed OODS long OODS long OODS
OODS signed OODS long OODS long OODS int OODS
OODS signed OODS short OODS
OODS signed OODS short OODS int OODS
OODS unsigned OODS
OODS unsigned OODS char OODS
OODS unsigned OODS int OODS
OODS unsigned OODS int OODS long OODS
OODS unsigned OODS int OODS long OODS long OODS
OODS unsigned OODS int OODS short OODS
OODS unsigned OODS long OODS
OODS unsigned OODS long OODS int OODS
OODS unsigned OODS long OODS int OODS long OODS
OODS unsigned OODS long OODS long OODS
OODS unsigned OODS long OODS long OODS int OODS
OODS unsigned OODS short OODS
OODS unsigned OODS short OODS int OODS
OODS void OODS
备注:
|
运算符连接)。OODS
是可选的其他声明说明符(零个或多个存储类说明符、限定符等)。AtomicTypeSpecifier
、EnumSpecifier
、StructOrUnionSpecifier
和TypeDefName
是普通 C 语法中明显的标记。