Unterprogramme als Resultate

int x1 = 3;

int (*s (int foo)) (int x2) {
  int f (int y) { return x1 + y; }
  return &f;
}

int main (int argc, char ** argv) {
  int (*p) (int) = s(4);
  printf ("%d\n", (*p)(3));
}

In f ersetze x1 durch x2.

Assemblercode erklären.



2010-02-04