0
存储类别和存储说明符在C中有什么区别?是挥发性的存储类或存储说明符?volatile是c中的存储说明符还是存储类?
EX:static volatile int a;
无任何错误,但 static auto/register/extern int a;
给出编译错误。
存储类别和存储说明符在C中有什么区别?是挥发性的存储类或存储说明符?volatile是c中的存储说明符还是存储类?
EX:static volatile int a;
无任何错误,但 static auto/register/extern int a;
给出编译错误。
以下是存储类声明并且可以有至多一个:
typedef
extern
static
auto
register
我们可以从draft C99 standard部分6.7.1
存储类型修饰符看到这一点,其中列出了上述指定并说:
最多可以在声明中声明 说明符中给出一个存储类说明符。102)
,另一方面volatile
是类型限定符我们可以从部分看到6.7.3
类型限定其中列出了以下预选赛:
const
restrict
volatile
,并说:
如果相同的限定符直接或通过一个或多个typedef在同一个 说明符限定符列表中出现多次, 的行为与仅出现一次的行为相同。
我们可以从语法部分中看到6.7
声明一个声明可以同时拥有存储类说明和类型限定符:
declaration-specifiers:
storage-class-specifier declaration-specifiersopt
type-specifier declaration-specifiersopt
type-qualifier declaration-specifiersopt
function-specifier declaration-specifiersopt