21ic问答首页 - XC8编译器调用函数后局域变量值被改变
XC8编译器调用函数后局域变量值被改变
ayfalcon2024-05-06
最近发现个问题,有个函数里边调用别的函数后老出错,查找程序没有问题,经过仿真后发现在调用一个子函数后有几个局部变量值会发生改变,再分析原因,发现本函数的局部变量和子函数的局部变量有地址重合的,子函数中对局部变量进行了操作,返回后相应的局部变量值发生了改变,所以出错,我现在把函数的所有局部变量全部设置为了静态变量,但是这只能是个权益之计,而且这样解决不知道会不会造成别的问题,正常来说C编译器应该能够避免这种现象的发生,我怀疑是编译器设置有问题了,但是找不到地方,有哪位大神能给帮帮忙呗。
赞0
评论
2024-05-18
赞0
楼上就知道重复这句套话,你懂细节么?不注重细节你不出问题谁出问题?
评论
2024-05-10
赞0
C语言,不用考虑BANK号呀!!
评论
2024-05-10
赞0
评论
2024-05-10
赞0
这个账号我有,但是英文水平有点差,发中文帖子可以吗?
评论
2024-05-09
赞0
希望那位知道的大神给解答一下,
评论
2024-05-09
赞0
把你的问题,详细反馈到这里。
先免费注册一个账户。
https://forum.microchip.com/s/sub-forums?&subForumId=a553l000000J2rAAAS&forumId=a553l000000J2pvAAC&subForumName=MPLAB%20XC8&forumName=Development%20Tools&page=1&offset=0
评论
2024-05-09
赞0
变量重叠,99.99%就是那个最垃圾的,最low的切bank思想所导致的混乱,白骨精就在这!
评论
2024-05-09
赞0
如何判断堆栈够用不够用呢!!
评论
2024-05-08
您需要登录后才可以回复 登录 | 注册