打印

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

[复制链接]
711|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2016-5-19 21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
spark周| | 2016-5-19 21:12 | 只看该作者
啥意思啊

使用特权

评论回复
板凳
zhaoxqi| | 2016-5-19 21:13 | 只看该作者
比如说:
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都不一样。请问这是什么原因?

使用特权

评论回复
地板
wyjie| | 2016-5-19 21:15 | 只看该作者
别人的函数呢

使用特权

评论回复
5
shimx|  楼主 | 2016-5-19 21:16 | 只看该作者
我看了别人的函数也存在这个问题,有点不懂?

使用特权

评论回复
6
heweibig| | 2016-5-19 21:18 | 只看该作者
不应该吧   形参与实参   仿真的时候参看值的时候你要时时刷新

使用特权

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

使用特权

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

使用特权

评论回复
9
shimx|  楼主 | 2016-5-19 21:30 | 只看该作者
在VC上面什么结果都是正确的哈

使用特权

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

使用特权

评论回复
11
dengdc| | 2016-5-19 21:33 | 只看该作者
输出结果正确就行了呗。

使用特权

评论回复
12
houcs| | 2016-5-19 21:35 | 只看该作者
是看到的二进制的方式吗?

使用特权

评论回复
13
shimx|  楼主 | 2016-5-19 21:36 | 只看该作者
结果也是错的哈!

使用特权

评论回复
14
shimx|  楼主 | 2016-5-19 21:37 | 只看该作者
不是哈,是十进制的

使用特权

评论回复
15
shimx|  楼主 | 2016-5-19 21:40 | 只看该作者
结果也是错的哈,但是VC里面是正确的

使用特权

评论回复
16
spark周| | 2016-5-19 21:42 | 只看该作者
去掉优化选项重新编译再单步调试试一下。

使用特权

评论回复
17
huangchui| | 2016-5-19 21:43 | 只看该作者
有时候代码优化之后与C不严格对应。

使用特权

评论回复
18
shimx|  楼主 | 2016-5-19 21:46 | 只看该作者
优化选项都没有选

使用特权

评论回复
19
jlyuan| | 2016-5-19 21:47 | 只看该作者
你按int来试试,看看结果呢?

使用特权

评论回复
20
shimx|  楼主 | 2016-5-19 21:48 | 只看该作者
你的意思是把数据类型改为int吗?

使用特权

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

本版积分规则

857

主题

10661

帖子

5

粉丝