【发布时间】:2012-10-26 18:45:34
【问题描述】:
参考Where in a declaration may a storage class specifier be placed?这个问题,我开始分析declaration-specifiers和declarators的概念。以下是我的理解积累。
声明
- 通常,
C声明遵循declaration-specifiers declarators;的语法 -
declaration-specifiers包括type-specifiers、storage-class-specifiers和type-qualifiers -
declarators可以是变量、指针、函数和数组等。
我假设的规则
-
declaration-specifiers可以按任意顺序指定,例如 -
storage-class-specifier不能超过一个 - 另一方面,可以有多个
type-qualifiers -
storage-class-specifier不应与declarator一起使用
问题
Q1:在常量指针的声明中,我看到declarator 和type-qualifier 混合如下
const int *const ptr; //Need justification for the mix of declarator and type-specifier
Q2:可以有一个指向static int的指针。是否有可能为指针提供static 存储类?表示指针是静态的。
【问题讨论】:
-
当我们声明一个常量指针时,在我看来
declarator和declaration-specifier混合使用。 *ptr 是declarator。理想情况下,我设想declaration-specifier是一个领先的声明者。但在这种情况下,它是*const ptr。那么这是一个例外情况吗?
标签: c variables static declaration storage-class-specifier