[STM32F1] 在F1使用全局变量声明一个结构体一般都怎么声明较好

[复制链接]
4400|66
 楼主| yangjiaxu 发表于 2024-8-31 22:10 | 显示全部楼层 |阅读模式
在F1使用全局变量声明一个结构体,结构体里有个数组,如何让数组只有赋值时会改变内部数据,而不是被系统随便赋值呢?
慢动作 发表于 2024-8-31 22:10 | 显示全部楼层
如果你希望这个数组的内容一旦初始化后就不能被修改,可以将数组定义为const,这样它在运行期间是只读的。
一秒落纱 发表于 2024-9-11 18:45 | 显示全部楼层
这种一般就需要最初的时候就赋值了
暖了夏天蓝了海 发表于 2024-9-11 20:00 | 显示全部楼层
其实每次使用的时候,赋值一下就好了

江河千里 发表于 2024-9-11 21:00 | 显示全部楼层
可以选择清零,或者赋值,都是可以的,但是每次使用这个数组都建议清一下

别乱了阵脚 发表于 2024-9-11 22:00 | 显示全部楼层
C语言中,全局变量在声明时会被自动初始化为零(对于基本数据类型)或空(对于指针和数组)。如果你希望数组只有在显式赋值时才会改变内部数据,而不是被系统随便赋值,你可以通过使用静态初始化,在声明时直接初始化数组,这样数组在声明时就会被赋予特定的值,之后只有显式赋值才会改变其内容。

冰春彩落下 发表于 2024-9-12 01:00 | 显示全部楼层
使用const关键字,将数组声明为const,这样数组的内容在初始化后就不能被修改。

淡漠安然 发表于 2024-9-12 02:00 | 显示全部楼层
使用函数进行访问,通过函数来访问和修改数组,这样可以更好地控制数组的修改。

三生万物 发表于 2024-9-12 03:00 | 显示全部楼层
你可以确保数组只有在显式赋值时才会改变内部数据,而不是被系统随便赋值。选择哪种方法取决于你的具体需求和编程习惯。

光辉梦境 发表于 2024-9-12 06:00 | 显示全部楼层
我是比较喜欢每次赋值,这种比较稳妥

远山寻你 发表于 2024-9-12 08:00 | 显示全部楼层
一般可以考虑使用静态变量操作就好了

夜阑风雨 发表于 2024-9-12 10:00 | 显示全部楼层
使用const的话,是这个数组不被修改的前提之下

LOVEEVER 发表于 2024-9-12 15:04 | 显示全部楼层
简单的就是最好的,直接声明就可以
saservice 发表于 2024-9-13 21:06 | 显示全部楼层
在.c文件中定义结构体类型。这应该在任何函数之外,但在#include语句之后。
1988020566 发表于 2024-9-13 22:14 | 显示全部楼层
全局变量通常声明在.c文件的顶部或在一个专门用于全局变量声明的头文件中
burgessmaggie 发表于 2024-9-14 08:30 | 显示全部楼层
全局变量会占用一定的内存空间,尤其是结构体较大时。在资源有限的 STM32F1 中,需要考虑全局变量对内存的占用情况,避免过度使用全局变量导致内存不足的问题。
pixhw 发表于 2024-9-14 11:52 | 显示全部楼层
可以在头文件(.h)中定义结构体类型,以便在其他源文件中引用。
usysm 发表于 2024-9-14 17:25 | 显示全部楼层
在合适的位置(通常是在一个或多个头文件中)定义结构体类型。
qiufengsd 发表于 2024-9-14 20:31 | 显示全部楼层
可以在源文件(.c)中使用static关键字初始化全局变量,以避免在链接时出现重复定义错误。
zerorobert 发表于 2024-9-15 08:19 | 显示全部楼层
在整个项目中保持对结构体的一致使用,包括命名、初始化和访问方式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:擅长电路设计、物联网产品开发、射频产品开发,喜欢打篮球,技术交流,欢迎各位来聊~

827

主题

3432

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部