打印

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

[复制链接]
346|18
手机看帖
扫描二维码
随时随地手机跟帖
沙发
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 | 只看该作者
不应该吧   形参与实参   仿真的时候参看值的时候你要时时刷新

使用特权

评论回复
5
zhenykun|  楼主 | 2016-5-29 16:33 | 只看该作者
我都刷新了的,我也完全没有搞懂是怎么回事?茫然!

使用特权

评论回复
6
huangchui| | 2016-5-29 16:34 | 只看该作者
如果你觉得程序没有问题的话  可以将程序放到vc或别的编译器下试试

使用特权

评论回复
7
zhenykun|  楼主 | 2016-5-29 16:35 | 只看该作者
在VC上面什么结果都是正确的哈

使用特权

评论回复
8
wyjie| | 2016-5-29 16:36 | 只看该作者
理应该没啥问题的啊   那你别打断点了  直接让它运行  看最终的结果是否合适

使用特权

评论回复
9
jlyuan| | 2016-5-29 16:37 | 只看该作者

输出结果正确就行了呗。

使用特权

评论回复
10
yszong| | 2016-5-29 16:38 | 只看该作者
是看到的二进制的方式吗?

使用特权

评论回复
11
zhenykun|  楼主 | 2016-5-29 16:39 | 只看该作者
结果也是错的哈!

使用特权

评论回复
12
zhenykun|  楼主 | 2016-5-29 16:40 | 只看该作者
不是哈,是十进制的

使用特权

评论回复
13
zhenykun|  楼主 | 2016-5-29 16:43 | 只看该作者
结果也是错的哈,但是VC里面是正确的

使用特权

评论回复
14
lizye| | 2016-5-29 16:44 | 只看该作者
去掉优化选项重新编译再单步调试试一下。有时候代码优化之后与C不严格对应。

使用特权

评论回复
15
zhenykun|  楼主 | 2016-5-29 16:45 | 只看该作者
优化选项都没有选

使用特权

评论回复
16
spark周| | 2016-5-29 16:46 | 只看该作者
把数据类型改为int

使用特权

评论回复
17
liliang9554| | 2016-5-29 16:48 | 只看该作者
堆栈不够

使用特权

评论回复
18
zhenykun|  楼主 | 2016-5-29 16:49 | 只看该作者
搞定了。因为我的程序全是矩阵运算,而我给的堆栈不够,所以导致了这些问题。谢谢各位的帮助

使用特权

评论回复
19
Stannis| | 2016-5-29 20:57 | 只看该作者
堆栈该怎么设置

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

868

主题

11535

帖子

3

粉丝