c语言的关键字之修饰符

阅读: 评论:0

c语言的关键字之修饰符

c语言的关键字之修饰符

c语言关键字

1、const(被修饰的量不可修改)

const修饰的是在它前面的类型,如果它前面没有类型,那它修饰的是紧跟着它的那个类型。

const type name =value   或  type const name =value

1.1、修饰变量类型

  • const int i =0; 修饰后面的int
  • 等价于
  • int const i=0; 修饰前面的int

1.2、修饰指针变量类型

  • const int *pi =0; pi是一个指向const int 的指针,复引用此运算符为得到一 个const int的类型,该类型不能作为左值,在该语句后使用类似于*pi = 1的操作将导致 编译错误。但该变量本身并不具备const属性,可以使用pi = &i的操作。可用于访问只读 存储器.
  • 等价于
  • int *const  pi =0;pi是一个指向int类型的const的指针,,复引用此运算符为得到一个int类型,该类型可以 作为左值,在该语句可以使用类似于*pi = 1的操作,但该变量本身具备const属性,使用 pi = &i的操作将导致编译错误。可用于访问固定位置的存储器。

复引用运算符(dereferencing operator)常称为间接运算符(indirection operator), 返回操作数(即指针)所指对象的同义词、别名或浑名。

1.3、双const出现的情况

const int* const pi = 0; pi和*pi均不能作为左值(等号左边)。它只适合于读取某个固定位置的只读存储器。

1.4、典型用法

  • void *memcpy(void *, const void *, size_t);用于参数列表,通常修饰的是指针类型,表明该函数不会试图对传入的地址进行写 操作。  
  •  const datatype_t *get_fixed_item(int index);用于返回值,通常是一个指向只读区域的指针。 给固定不变的数据(例如码表)加上只读属性,在某些情况下可以减小ram的开销。

2、static修饰符

  • 修饰函数:被修饰的函数只在本文件中调用
  • 修饰全局变量:被修饰的变量只在本文件中有效(变量作用于)
  • 修饰局部变量: 增加局部变量的生命周期,若定义未初始化,则默认初始化为0

3、register修饰符

使用此修饰符声明的变量说明它是寄存器变量,在程序中使用频率高,请求编译器把它放在寄存器中

  • 变量必须是 CPU 接受的类型
  • 只能使用于局部变量和函数形参,全局(register)变量是非法的
  • 无论寄存器变量是否存放在寄存器中,它地址都是不能访问的(取&)

4、volatile

被volatile修饰,表示变量随时可能被修改,感觉是与const在唱反调。系统对实时性要求很高,请一定从内存中读取内容,不要直接拷贝寄存器中的数据,有可能数据老旧。常见的使用场合包括中断服务程序和嵌入式系统的寄存器相关操作。

5、extern

被extern修饰的函数或变量说明,在其他 地方已经被定义

6、auto修饰符

auto声明局部变量的标志。修饰局部变量,可以省略,所以不常见。

 

本文发布于:2024-01-31 11:05:38,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667034128058.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:vue语法简述
标签:关键字   语言   修饰符
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23