20030904-1.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 95 行

C
95
字号
struct A{  long a1;  double *a2;};struct B{  void *b1;  double b2, b3;  struct  {    int d1;    double d2;  } b4;};struct C{  struct A *c1;  void *c2;};long fn1 (struct A *, double);void fn2 (void *, const char *);double fn3 (double);double fn4 (double);int fn5 (void *, double, double);intfoo (struct B *x){  struct C *e = x->b1;  struct A *f = e->c1;  long g, h, i;  double *j, k;  g = fn1 (f, 0.5 * (x->b2 + x->b3)), h = g + 1, i = f->a1;  j = f->a2, k = x->b4.d2;  fn2 (x, "something");  if (g <= 0)    {      double l = j[2] - j[1];      if (l > 0.0 && l <= 0.02)        k = (x->b4.d1 == 1             ? ((1.0 / l) < 25 ? 25 : (1.0 / l))             : fn3 ((1.0 / l) < 25 ? 25 : (1.0 / l)));    }  else    {      double m = j[h] - j[g], n = 0.0, l = 0.0;      if (g > 1)        n = j[g] - j[g - 1];      if (h < i)        l = j[h + 1] - j[h];      if (n > 0.02)        n = 0;      if (m > 0.02)        m = 0;      if (l > 0.02)        l = 0;      if (m < n)        {          double o = m;          m = n;          n = o;        }      if (l < n)        {          double o = l;          l = n;          n = o;        }      if (l < m)        {          double o = l;          l = m;          m = o;        }      if (n != 0.0)        k = (x->b4.d1 == 1             ? ((1 / m) < 25 ? 25 : (1 / m))             : fn3 ((1 / m) < 25 ? 25 : (1 / m)));      else if (m != 0.0)        k = (x->b4.d1 == 1             ? ((2 / (m + l)) < 25 ? 25 : (2 / (m + l)))             : fn3 ((2 / (m + l)) < 25 ? 25 : (2 / (m + l))));      else if (l != 0.0)        k = (x->b4.d1 == 1             ? ((1 / l) < 25 ? 25 : (1 / l))             : fn3 ((1 / l) < 25 ? 25 : (1 / l)));    }  fn5 (e->c2, 0.5 * (x->b2 + x->b3), (x->b4.d1 == 1 ? k : fn4 (k)));  return 1;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?