首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

好些天没有搞明事情,麻烦各位给看看。

局部变量不会分配固定的地址,只会放入堆栈中,而且要等其所在程序运行时才会分配。所以,只有程序进入autoset_rssi_rx_rf()函数后,你才能看到这些变量的地址和数据。
海纳百川  有容乃大
堆栈溢出了?
海纳百川  有容乃大
把整个project打包贴上来看看吧。或者发到strongchen_free@yahoo.com.cn。
海纳百川  有容乃大
这可能是因为编译时优化产生的问题。你可以在变量声明前加static说明来解决,像这样:

static char rssi=-91;
static float rssi_14_t1;
static float rssi_14_t2;
static float rssi_14_t;
static float rssi_f1_t1;
static float rssi_f2_t1;
static float rssi_f_t1;
static float rssi_f1_t2;
static float rssi_f2_t2;
static float rssi_f_t2;
static float rssi_f_t;

调试时你就可以看到变量的地址和数值了。
海纳百川  有容乃大
对,如果局部变量声明前加static,就会分配一个固定的地址,会占用很多的资源。如非必需,尽量不要加。正常情况下,应该不会影响结果。当可能影响结果时,编译器会有警告。此时关闭相应的优化选项即可。
海纳百川  有容乃大
返回列表