关键字auto 含义 -- C

auto int a=32;

中的auto在编程中很少见,其几天笔试考到,由于不记得以前用过,就以无视auto的存在进行了处理。

作用:

C语言是面向过程的,会有很多分模块的函数,每个函数都会有其生存周期(也叫作用域),在函数生命周期中声明的变量通常叫做局部变量,也叫自动变量,也就是说,如果在

形如:

int fun(){

 int a=10;

 return a;

}

编译器会自动在 int a=10;的语句前面加上auto的关键字,所以,无视它的存在一般情况下是没有问题的。


此外,附带介绍一下看到的另外一个关键字:register,如果一个变量用register来修饰,该变量会作为一个寄存器变量,以使其访问速度达到最快。比如:一个程序逻辑中有一个很大的循环,循环中有几个变量要频繁的进行操作,这些变量可以声明为register类型。

寄存器变量:

寄存器变量是指一个变量直接引用寄存器,也就是对变量名的操作的结果是直接对寄存器进行访问。寄存器是CPU的亲信,CPU操作的每个操作数和操作结果,都由寄存器来暂时保存,最后才写入到内存或从内存中读出。也就是说,变量的值通常保存在内存中,CPU对变量进行读取先是将变量的值从内存中读取到寄存器中,然后进行运算,运算完将结果写回到内存中。为什么要这么设计,而不直接对变量的值从内存中进行运算,而要再借助于寄存器?这是由于考虑到性能的问题才这么设计的。

 

 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. auto:指定局部变量的存储类别,表示变量在程序执行过程中自动存储和释放。 2. break:中断当前循环或switch语句的执行。 3. case:在switch语句中用来匹配一个常量表达式的值。 4. char:表示字符类型数据。 5. const:指定变量在程序执行中不能被修改的常量。 6. continue:中断当前循环的一次迭代,继续执行下一次迭代。 7. default:在switch语句中当所有case语句都不匹配时执行的语句块。 8. do:标识do-while循环的开始。 9. double:表示双精度浮点数类型数据。 10. else:在if语句中当条件为false时执行的语句块。 11. enum:创建枚举类型,将一些常量名组织在一起,方便阅读和编写程序。 12. extern:指定一个变量是在程序其他地方定义的外部变量。 13. float:表示单精度浮点数类型数据。 14. for:标识for循环的开始。 15. goto:跳转到程序中的其他位置。 16. if:判断条件是否成立,如果成立,执行一段代码块。 17. int:表示整数类型数据。 18. long:表示长整数类型数据。 19. register:指定变量存储于CPU的寄存器中,存取速度较快。 20. return:将函数的执行结果返回给调用者。 21. short:表示短整数类型数据。 22. signed:表示带符号的整数类型数据。 23. sizeof:返回变量或数据类型占用的内存字节数。 24. static:指定变量在程序执行过程中始终存在,在不同函数间共用。 25. struct:创建一个结构体类型,将不同类型的变量组合在一起。 26. switch:根据表达式的值选择执行与之相关的分支。 27. typedef:给数据类型起一个新的简短的名称。 28. union:创建一个共用体类型,允许不同的变量使用相同的内存空间。 29. unsigned:表示不带符号的整数类型数据。 30. void:表示空类型数据,通常用于函数没有返回值的情况。 31. volatile:指定变量可以被随时改变,通常用于与硬件相关的编程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值