comp.lang.c FAQ list

· Question 20.24 (original) (raw)

prev up next top/contents search


**Q:**Why doesn't C have nested functions?


**A:**It's not trivial to implement nested functions such that they have the proper access to local variables in the containing function(s), so they were deliberately left out of C as a simplification. (gcc does allow them, as an extension.) For many potential uses of nested functions (e.g. qsortcomparison functions), an adequate if slightly cumbersome solution is to use an adjacent function with static declaration, communicating if necessary via a few staticvariables. (A cleaner solution, though unsupported by qsort, is to pass around a pointer to a structure containing the necessary context.)


prev up next contents search
about this FAQ list about eskimo search feedback copyright

Hosted byEskimo North