主函数调用其他源文件定义的全局变量偶尔出错

来源:互联网 发布:大连 育知同创 郑爽 编辑:程序博客网 时间:2024/05/16 16:05

问题描述:源文件定义全局变量gData(结构体变量成员),主函数中调用一个子函数function(gData),并将gData作为该子函数的入参。但偶尔存在入参值与实际值不一样的现象。

问题分析:这钟现象的原因可能是,在gData发生变化后,编译器没有从变量(gData)地址重新读取新数据,而是读取了寄存器中的值作为当前值,导致错误!

解决方法:

       一:将gData的地址作为入参。

      二:将变量定义为volatile型(没有测试,不知道行不行)
阅读全文
0 0
原创粉丝点击