关于keil5编程的问题
我用keil5编译程序的时候遇到了个问题,代码如下:void crosscorr1(const double x,const double y, double c){printf("11");
}
void main_corr2()
{
double dv4;
double dv5;
double c3;
crosscorr1(dv4,dv5,c3);
}
在主函数中调用main_corr2()时串口没有输出,但是将 double dv4;double dv5;double c3;的声明放在了全局位置时,串口能如预计输出。请问这是为什么,用的单片机型号为stm32f103ze
试下,是否 只放double dv4;double dv5;的声明放在了全局位置时,就能串口能如预计输出?
若是,那么 跟 const 有关 么看出来 可能是代码优化了,你把优化级别放低点试试 mikecai 发表于 2019-12-2 13:35
试下,是否 只放double dv4;double dv5;的声明放在了全局位置时,就能串口能如预计输出?
若是, ...
还是不行,但是c3的声明也放到全局变量里,正常输出。 斯文人 发表于 2019-12-2 13:50
可能是代码优化了,你把优化级别放低点试试
0级呢 我把 double dv4;
double dv5;
double c3;的声明放在了全局位置,就能正常输出了,这是怎么回事? 看一下是不是变量在RAM中的分配问题 函数参数传大数组真的合适吗?即便可以,至少这个写法不大好。
函数参数在传大数组时,可以换成指针传。
页:
[1]