![]() |
|---|
函数调用中遇到的困惑憨牛电子 我们在用C编写程序时经常遇到函数返回赋给一个变量,这好象成了我们常用的一种手法,这在前二天我遇到一个怪现象。程序在 初始化中要进行一些变量的赋值,我把放入MCU内部EEPROM中的内容提出来赋给变量,以前我都是在哪使用就直接读取,从来没有出现 过问题(我常用的MCU是philips的LPC900系列),在这个程序中要多次用到调用EEPROM的情况,我想把它做为一个函数返回值放入一 个变量不就成了,结果出乎我的预料,读取出来的值并不是先前放入那个位置的值。怎么找也没有找出问题所在来。这样过了好几天反 复试也没有找出,唉!郁闷呀!! 在同样的位置如果不用函数调用的方式就可以顺利读出结果来,找来同事出没有找到所以然来。我把程序放到这里有兴趣的朋友可 以帮我解决一下,顺便交个同行朋友。使我郁闷的程序 我想函数调用是我应用多年的,怎么会出现这种错误呢?我把函数调用的程序 修改了一下不返回值,我在外部定义了一个变量把EEPROM中取得的值直接赋给这个变量。程序的初始化部分直接调用这个过程,没有出 现问题,得到的结果完全正确。一个做为函数返回值,一个做为过程调用。得到的结果竟成二个完全不同的结果,问题出现在哪里呢? !在没有弄清楚这个问题之前,以后还是用全局变量进行传递值。对我也是对同行们一种告诫吧。
|