Как перекинуть переменную из функции в главный файл?
Мне необходимо перекинуть переменную Ti из функции в главный файл. Если оставить все как есть в моем коде, то Ti будет равна 0 (в главном файле). Каким образом можно эту переменную перекинуть?
Вот кусок из главного файла где я вызываю функцию для расчета переменной Ti
float Uinp[n],Uout[n],Ti;
raschet_Ti(Uout,n,Uinp1,t0,dt,Ti);
printf("\nImpulse time: [%f] ",Ti);
А вот сама функция
void raschet_Ti(float Uout[],int n,float Uinp1,int t0,float dt,float Ti)
{
int i,J;
float Umax,Tpz,Tpp,U1,U;
setlocale(LC_ALL,"RUS");
Umax = 0;
for(i=1;i<=n;i++)
{
if(Umax < Uout[i])
{
Umax=Uout[i];
J=i;
}
}
U1=0.5*Umax;
i=1;
while(Uout[i]<U1)
{
i++;
}
Tpp=t0+i*dt;
i=J;
while(Uout[i]>U1)
{
i++;
}
Tpz=t0+i*dt;
Ti=Tpz-Tpp;
}
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
Так как Ваша функция рассчитывает Ti, то пусть она его и возвращает. Где то так
float raschet_Ti(float Uout[],int n,float Uinp1,int t0,float dt)
{
// удалил, что бы не мешало
Tpz=t0+i*dt;
return Tpz-Tpp;
}
и вызов
float Uinp[n],Uout[n],Ti;
Ti = raschet_Ti(Uout,n,Uinp1,t0,dt);
printf("\nImpulse time: [%f] ",Ti);
Можно конечно передать Ti по указателю, но здесь это не нужно.
void raschet_Ti(float Uout[],int n,float Uinp1,int t0,float dt,float* Ti)
{
// удалил, что бы не мешало примеру
Tpz=t0+i*dt;
*Ti=Tpz-Tpp;
}
ну и вызываем так
float Uinp[n],Uout[n],Ti;
raschet_Ti(Uout,n,Uinp1,t0,dt,&Ti);
printf("\nImpulse time: [%f] ",Ti);