c: Fix id generation for unnamed structs inside scope blocks

Scope blocks start a new namespace but don't have a name themselves,
so this assert() was wrong.
Add -nofunctionbodies option