迪文科技论坛

 找回密码
 立即注册
搜索
查看: 996|回复: 10

【提问】C51中的静态变量初始化

[复制链接]

1

主题

1

回帖

28

积分

新手上路

Rank: 1

积分
28
发表于 2022-3-20 07:19:23 | 显示全部楼层 |阅读模式
请问  采用XDATA模式 内存08000开始 模式下   静态变量怎样初始化 现在直接初始化不行 是随机数 比如 static s_counter= 123; 不能正常使用

回复

使用道具 举报

0

主题

40

回帖

315

积分

中级会员

Rank: 3Rank: 3

积分
315
发表于 2022-3-20 16:46:37 来自手机 | 显示全部楼层
jiuhechenxing 发表于 2022-3-20 07:19
请问  采用XDATA模式 内存08000开始 模式下   静态变量怎样初始化 现在直接初始化不行 是随机数 比如 stati ...

您好,您放到函数里初始化,然后调用。
回复

使用道具 举报

2

主题

13

回帖

241

积分

中级会员

Rank: 3Rank: 3

积分
241
发表于 2025-10-14 20:30:35 | 显示全部楼层
帅到爆 发表于 2022-3-20 16:46
您好,您放到函数里初始化,然后调用。

那不变成全局变量了吗? 难道无法使用静态变量?
回复

使用道具 举报

0

主题

526

回帖

3085

积分

论坛元老

Rank: 8Rank: 8

积分
3085
发表于 2025-10-15 08:55:44 来自手机 | 显示全部楼层
直接宏定义吧。
回复

使用道具 举报

4

主题

15

回帖

153

积分

注册会员

Rank: 2

积分
153
发表于 2025-10-15 09:25:25 | 显示全部楼层
c51编译器不支持初始化xdata变量,单片机无法将初始化数据自动加载到外部RAM
回复

使用道具 举报

4

主题

15

回帖

153

积分

注册会员

Rank: 2

积分
153
发表于 2025-10-15 09:28:24 | 显示全部楼层
海诺泰 发表于 2025-10-14 20:30
那不变成全局变量了吗? 难道无法使用静态变量?

全局变量可以可以正常使用,但是如果变量类型后面xdata后,是无法给外部RAM变量类型初始化
回复

使用道具 举报

2

主题

13

回帖

241

积分

中级会员

Rank: 3Rank: 3

积分
241
发表于 2025-10-15 10:59:36 | 显示全部楼层
静态变量不放在XDATA, 可以定义时赋值吗
回复

使用道具 举报

4

主题

15

回帖

153

积分

注册会员

Rank: 2

积分
153
发表于 2025-10-15 11:30:46 | 显示全部楼层
海诺泰 发表于 2025-10-15 10:59
静态变量不放在XDATA, 可以定义时赋值吗

可以的,静态变量赋值全局和局部都是可以初始化
回复

使用道具 举报

27

主题

207

回帖

2545

积分

金牌会员

Rank: 6Rank: 6

积分
2545
发表于 2025-10-15 19:15:07 | 显示全部楼层
不会啊,我测试没有问题的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

23

主题

72

回帖

702

积分

高级会员

Rank: 4

积分
702
发表于 2025-12-12 11:30:59 | 显示全部楼层
nearsea 发表于 2025-10-15 19:15
不会啊,我测试没有问题的

请问你是如何实现能仿真的功能的?方便请教一下?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-6-21 20:11 , Processed in 0.039585 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表