C语言中的存储类型和类型限定符
C语言中共有4种存储类型:auto、static、extern、register。这4种存储类型在声明中最多只可以出现一种存储类型,而且,它们无法用于typeof声明中。类型限定符也称为存储类型限定符:const、volatile和C99中的restrict,声明中可以不用或者使用多个类型限定符,使用顺序无限制,且,可以用在typeof声明中。
类型限定符的作用:
(1)const
对象的类型如果有const限定符,该对象就是常量;在定义该对象之后,就无法修改它。
(2)volatile
对象的类型如果有volatile限定符,就可能会被其他执行程序或事件所修改。volatile关键字告诉编译器在每次使用此对象的值时,都要重新读取,即使程序本身并没有修改它的值。
(3)restrict
restrict限定符只适用于对象指针类型。这是C99新增加的,用来告诉编译器,此指针所指向的对象如果被修改,就不可以被此指针以外的方式所存取,不管是直接地还是间接地。