|
最近编译工程时发现一个奇怪的现象,发到这里,看看有没有高手知道为什么 问题是:函数内的局部变量(结构体),在使用时,应该占用当前栈空间, 也就是说,进入函数后,会有一句类似"00008a b093 SUB sp,sp,#0x4c" 这样的语句,给局部变量申请空间 但出现问题时没有这句话,导致此变量占用的就是当前栈顶的空间,在进行结构体赋值时就会出现覆写栈空间,有可能导致函数返回错误 下面有2张图多下对比 下面是编译出现问题的: ![]() 下面是编译正常的: ![]() 使用的是keil版本如下 ![]() 这个是编译选项 ![]() |
微信公众号
手机版
评分
查看全部评分