中间的变量不是调用函数中的值

[复制链接]
529|18
 楼主| zhenykun 发表于 2016-5-29 16:27 | 显示全部楼层 |阅读模式
为什么CCS中,函数调用时,其中间的变量不是调用函数中的值
jiaxw 发表于 2016-5-29 16:27 | 显示全部楼层
不可能吧
 楼主| zhenykun 发表于 2016-5-29 16:29 | 显示全部楼层
比如说:
static void Compute_c(float theta1,float theta2,float SNR,int M,float G_capon[360]);
在主函数中调用形式:
Compute_c(m_theta1,m_theta2,m_SNR,SENSOR,G_capon);

头文件中定义变量:
#define SENSOR 8
#define m_theta1 -20.0
#define m_theta2 20.0
#define m_SNR 10

其中,G_capon为返回值;

使用断点进入函数Compute_c()查看中间变量值的变化,但是theta1,theta2,SNR,M都不一样。
zhaoxqi 发表于 2016-5-29 16:30 | 显示全部楼层
不应该吧   形参与实参   仿真的时候参看值的时候你要时时刷新
 楼主| zhenykun 发表于 2016-5-29 16:33 | 显示全部楼层
我都刷新了的,我也完全没有搞懂是怎么回事?茫然!
huangchui 发表于 2016-5-29 16:34 | 显示全部楼层
如果你觉得程序没有问题的话  可以将程序放到vc或别的编译器下试试
 楼主| zhenykun 发表于 2016-5-29 16:35 | 显示全部楼层
在VC上面什么结果都是正确的哈
wyjie 发表于 2016-5-29 16:36 | 显示全部楼层
理应该没啥问题的啊   那你别打断点了  直接让它运行  看最终的结果是否合适
jlyuan 发表于 2016-5-29 16:37 | 显示全部楼层

输出结果正确就行了呗。
yszong 发表于 2016-5-29 16:38 | 显示全部楼层
是看到的二进制的方式吗?
 楼主| zhenykun 发表于 2016-5-29 16:39 | 显示全部楼层
结果也是错的哈!
 楼主| zhenykun 发表于 2016-5-29 16:40 | 显示全部楼层
不是哈,是十进制的
 楼主| zhenykun 发表于 2016-5-29 16:43 | 显示全部楼层
结果也是错的哈,但是VC里面是正确的
lizye 发表于 2016-5-29 16:44 | 显示全部楼层
去掉优化选项重新编译再单步调试试一下。有时候代码优化之后与C不严格对应。
 楼主| zhenykun 发表于 2016-5-29 16:45 | 显示全部楼层
优化选项都没有选
spark周 发表于 2016-5-29 16:46 | 显示全部楼层
把数据类型改为int
liliang9554 发表于 2016-5-29 16:48 | 显示全部楼层
堆栈不够
 楼主| zhenykun 发表于 2016-5-29 16:49 | 显示全部楼层
搞定了。因为我的程序全是矩阵运算,而我给的堆栈不够,所以导致了这些问题。谢谢各位的帮助
Stannis 发表于 2016-5-29 20:57 | 显示全部楼层
堆栈该怎么设置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

868

主题

11535

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部