无法为全局变量赋值[C]

时间:2014-02-14 19:33:50

标签: c variables global-variables

正如您在下面的代码中看到的,我得到了一些全局变量。我的问题是,来电Ul()(由calc()完成)不会影响原始变量,会将其值保持为零。
你有什么想法吗?
我正在使用C编程语言!

double Iges;
double Ul;
double Ir6;
double Ur6;
double Ub;

double R1, R2, R3, R4, R5, RL;
double R6;

#include <stdio.h>

#define DEBUG 1

double Iges_ ();
double Ul_();
double Ir6_();
double Ur6_();
double RL_();
double calc();

int main()
{

  Iges=Ul=Ir6=Ur6=Ub=0;
  R1=R2=R3=R4=R5=0;

  Ub=65;
  R1=100;
  R2=100;
  R3=100;
  R4=100;
  R5=200;

  R6=200; // Falls ich es vergesse...

  printf("Starte Hausaufgaben Berechnung\n");
  calc();
  printf("Iges = %.3lf\n", Iges);
  printf("R1=%.3lf; R2=%.3lf; R3=%.3lf; R4=%.3lf; R5=%.3lf\n",R1, R2, R3, R4, R5);
  printf("Rges = %.3lf (RL=%.3lf; R1=%.3lf; R3=%.3lf)\n\n", RL+R1+R3,RL, R1, R3);
  printf("Ul=%.3lf\n",Ul);
  printf("Maximale Leistung (PR6=%.3lf) bei R6=%.3lf\n", Ur6*Ir6, R6);
}

double calc()
{
  RL   = RL_();
  Iges = Iges_();
  Ul   = Ul_();
  Ir6  = Ir6_();

}

inline double RL_()
{
  *&RL = (R5*(R2+R6+R4)) / (R5+R2+R6+R4);
  printf("\t[CALC]\t[RL]\t[%.3lf]\n",RL);
}

inline double Iges_()
{
  Iges = Ub/(R1+R3+RL);
  printf("\t[CALC]\t[Iges]\t[%.3lf]\n",Iges);
  return Iges;
}

inline double Ul_()
{
  Ul = Iges * RL;
  printf("\t[CALC]\t[UL]\t[%.3lf]\n",Ul);
  return Ul;
}

inline double Ir6_()
{
  Ir6 = Ul / (RL+R6+R4);
  printf("\t[CALC]\t[IR6]\t[%.3lf]\n",Ir6);
  return 0;
}

inline double Ur6_()
{
  printf("\t[CALC]\t[UR6]\t[%.3lf]\n",Ur6);
  return 0;
}

1 个答案:

答案 0 :(得分:1)

您没有从RL_()返回任何内容,在return RL;

结尾处执行RL_