In C, you cannot do that.
In C++ you can indirectly, e.g.
int f()
{
struct S {
int g() { return 1; }
} s;
return s.g();
}
You may
declare a function within a function (so that it can be used), but it's definition must be placed elsewhere, e.g.
int f()
{
extern int g();
return g();
}
...
int g() { return 1; }
Cheers
Andi