C语言复习之变量

2023-12-17 20:31:56

变量与指针

变量

CPU运行程序的时候,是从FLASH读指令, 并且去执行指令。
内存是CPU可以去读可以去写。
变量必然在内存中。
在这里插入图片描述
Volatile:是易变的。写上Volatile是告诉编译器这是可变的,防止编译的时候变量被优化掉。
在这里插入图片描述
作为全局变量,可以在MAP中进行查看分配的地址:
在这里插入图片描述
Int 是4字节。
Buf是100字节。
在这里插入图片描述

指针
 int  *p ;

在这里插入图片描述
在这里插入图片描述
Char *p2 ; // 也是占4个字节
在这里插入图片描述
有个问题?常量保存在哪里?
在这里插入图片描述
一般加上const 是常量,可以放在FLASH中,不放在内存找中了,节省内存。
BSS段是什么?

测试内存大小: 放入变量名
在这里插入图片描述

关键字(const ; volatile等)

Volatile : 不能编译器自作主张去优化它。
Int i ; 必然在内存中。
在这里插入图片描述
变量不加Volatile ,程序会运行的非常快。
加上Volatile ,每一次就需要将变量写到内存中,加上1,再读到CPU中。
但是对于寄存器,必须加上volitile:
在这里插入图片描述
Const: 不想被人改变的数值
一般加上const 是常量,可以放在FLASH中,不放在内存找中了,节省内存。
Static:
在单个.c文件中去定义变量,不会影响到别的文件。即使别的文件中定义了相同的变量名。
在这里插入图片描述
如果不加,就变成了整个文件都可以用它。
Extern: 外部的别的文件中定于的。
在这里插入图片描述
两种方法都可以使用。
直接定义Int :就是全局变量的意思,作用范围是整个程序。如果哪一个程序不用他,加上static。

文章来源:https://blog.csdn.net/qqmrchen124/article/details/135045434
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。