:if so, it is compiler specific. there is no general solution of this
roblem?
There is no general solution for embedded systems. There is, though,
a general solution for hosted systems.
For hosted systems, the solution is to change your compilation options
in a minor way: instead of having your IDE or makefile or whatever
compile your program directly, have it compile one of the portable C
compilers (or interpreters), and take the output of that and use it to
compile one of the virtual machine emulators for a platform supported
by gcc, and then run that virtual machine emulator to compile gcc,
and then use gcc within the virtual machine emulator to compile
your source, and then run that executable within the virtual
environment. You likely need to toss in a cross-compilation of the
portable C compiler to the emulated virtual machine.
gcc is written to be compilable in standard C instead of requiring
gcc extensions, but you can't just go for gcc -directly- because
you don't have the necessary data tables for every environment.
So all you have to do is push in the intermediate layer of the
emulated windows environment -- the emulators are written in C,
and their "bios" and OS are just data files that are available.
No problem.
If this doesn't sound like the right solution for you, then if
you want to produce portable code, you should avoid 'typeof'.