打印
[STM32F1]

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

[复制链接]
1449|59
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangjiaxu|  楼主 | 2024-8-31 22:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在F1使用全局变量声明一个结构体,结构体里有个数组,如何让数组只有赋值时会改变内部数据,而不是被系统随便赋值呢?

使用特权

评论回复
沙发
慢动作| | 2024-8-31 22:10 | 只看该作者
如果你希望这个数组的内容一旦初始化后就不能被修改,可以将数组定义为const,这样它在运行期间是只读的。

使用特权

评论回复
板凳
一秒落纱| | 2024-9-11 18:45 | 只看该作者
这种一般就需要最初的时候就赋值了

使用特权

评论回复
地板
暖了夏天蓝了海| | 2024-9-11 20:00 | 只看该作者
其实每次使用的时候,赋值一下就好了

使用特权

评论回复
5
江河千里| | 2024-9-11 21:00 | 只看该作者
可以选择清零,或者赋值,都是可以的,但是每次使用这个数组都建议清一下

使用特权

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

使用特权

评论回复
7
冰春彩落下| | 2024-9-12 01:00 | 只看该作者
使用const关键字,将数组声明为const,这样数组的内容在初始化后就不能被修改。

使用特权

评论回复
8
淡漠安然| | 2024-9-12 02:00 | 只看该作者
使用函数进行访问,通过函数来访问和修改数组,这样可以更好地控制数组的修改。

使用特权

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

使用特权

评论回复
10
光辉梦境| | 2024-9-12 06:00 | 只看该作者
我是比较喜欢每次赋值,这种比较稳妥

使用特权

评论回复
11
远山寻你| | 2024-9-12 08:00 | 只看该作者
一般可以考虑使用静态变量操作就好了

使用特权

评论回复
12
夜阑风雨| | 2024-9-12 10:00 | 只看该作者
使用const的话,是这个数组不被修改的前提之下

使用特权

评论回复
13
LOVEEVER| | 2024-9-12 15:04 | 只看该作者
简单的就是最好的,直接声明就可以

使用特权

评论回复
14
saservice| | 2024-9-13 21:06 | 只看该作者
在.c文件中定义结构体类型。这应该在任何函数之外,但在#include语句之后。

使用特权

评论回复
15
1988020566| | 2024-9-13 22:14 | 只看该作者
全局变量通常声明在.c文件的顶部或在一个专门用于全局变量声明的头文件中

使用特权

评论回复
16
burgessmaggie| | 2024-9-14 08:30 | 只看该作者
全局变量会占用一定的内存空间,尤其是结构体较大时。在资源有限的 STM32F1 中,需要考虑全局变量对内存的占用情况,避免过度使用全局变量导致内存不足的问题。

使用特权

评论回复
17
pixhw| | 2024-9-14 11:52 | 只看该作者
可以在头文件(.h)中定义结构体类型,以便在其他源文件中引用。

使用特权

评论回复
18
usysm| | 2024-9-14 17:25 | 只看该作者
在合适的位置(通常是在一个或多个头文件中)定义结构体类型。

使用特权

评论回复
19
qiufengsd| | 2024-9-14 20:31 | 只看该作者
可以在源文件(.c)中使用static关键字初始化全局变量,以避免在链接时出现重复定义错误。

使用特权

评论回复
20
zerorobert| | 2024-9-15 08:19 | 只看该作者
在整个项目中保持对结构体的一致使用,包括命名、初始化和访问方式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

650

主题

2702

帖子

6

粉丝