Using uint32_t requires #include <stdint.h> and a C99 compiler
system. You probably don't have either.
That's just plain bullschildt, Chuck.
Using uint32_t requires a <stdint.h> header, or equivalent. Any
conforming C90 compiler that has the right size integer types with 2's
complement representation, and that is the overwhelming majority of
them, will work just fine with a properly written <stdint.h> file, for
whatever subset of C99 integer types that they support and they are
not hard at all to write. They're just typedefs, after all.
Every conforming C89/C90 implementation can support all of the
''least'' and ''fastest'' up to 32 bits, if not 64 bits.
And what conforming implementation have you ever actually used that
did not provide an exact-width 32-bit integer type with no trap
representations and using 2's complement for the signed version?
I've written several (subset) stdint.h headers for a variety of
embedded 16-bit, 32-bit, and DSPs. Heck, the one that comes with
ARM's ADS 1.1 or 1.2 development tools compiles and works perfectly
with Visual C++ 6.
The corresponding <inttypes.h> header with its macros for printf() and
scanf() is more work, but it is also possible and I've done it.
Many compilers, even though they do not support all of C99, include a
working <stdint.h> and <inttypes.h>, even quite a few available for
free download. All of the 32-bit ones I know of support the 64-bit
types as well. Here's a list of compilers that I know have these
headers:
-- Borland's free C++BuilderX
-- mingw
-- gcc
-- lcc-win32
-- Codewarrior for Windows
-- ARM ADS
-- IAR for ARM
....and I've made subset headers that worked on platforms like TI DSPs
and 16 micros. Heck, I could write subset headers in half an hour or
less for an 8051, if I couldn't get out of never using on again.
So come off your high horse, you do not need C99 for using and
printing uint32_t, all you need is a pair of headers that can be used
quite well in C89/C90, or in some K&R 1 implementations for that
matter. It requires no language features at all, just typedefs and
the automatic string concatenation for the <inttypes.h> macros that
wasn't universal until C89.