找回密码
 立即注册
查看: 630|回复: 5

函数传参数失败

[复制链接]
已绑定手机

1

主题

2

回帖

13

积分

新手上路

积分
13
发表于 2025-10-22 09:13:10 来自手机 | 显示全部楼层 |阅读模式
我用的stc32G8K64,编译通过,部分程序可正常执行,在调试某个模块时,定义函数比如void func(unsigned char  val){  gMOD=val    },程序其它地方调用函数func(5),  debug到函数内val始终是0,感觉编译哪里设置不对,我是按手册配置的keil
回复

使用道具 举报 送花

11

主题

148

回帖

1443

积分

金牌会员

积分
1443
发表于 2025-10-22 09:18:37 | 显示全部楼层
可能产生优化了,数值直接传给了gMod
微信qsssuv
回复

使用道具 举报 送花

已绑定手机

123

主题

5133

回帖

1万

积分

超级版主

无情的代码机器

积分
11463
发表于 2025-10-22 09:31:40 | 显示全部楼层
未复现,调整编译等级和变量增加操作试下:


截图202510220930584923.jpg

截图202510220931374165.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

已绑定手机

1

主题

2

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-10-22 10:28:27 来自手机 | 显示全部楼层
多谢,回复,我尝试后反馈结果
回复

使用道具 举报 送花

已绑定手机

1

主题

2

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-10-22 20:08:24 | 显示全部楼层
我找到原因了,我的原因是
void func(unsigned char val) {
    gMOD = val;  ===》gMod  定义成static了, 去掉static就可以了
}
回复

使用道具 举报 送花

1

主题

26

回帖

3192

积分

论坛元老

积分
3192
发表于 2026-6-5 10:01:57 | 显示全部楼层
一个函数的,for循环出错,查了两天发现是传入时参数准确,中断后,参数变化了,调整编译等级到0级,正常了
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-7 12:47 , Processed in 0.070769 second(s), 66 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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