[Coco] ANSI -> K&R Code Conversion
KnudsenMJ at aol.com
KnudsenMJ at aol.com
Fri Mar 18 12:35:28 EST 2005
In a message dated 3/17/05 8:42:26 PM Eastern Standard Time,
mannslists at invigorated.org writes:
>Would it be prudent to also look through some of the code and check for
things
>that would require another header under MWC? For example, the need to
include
>float.h (or whatever) when you try and print floats or doubles (along with
the
>added command pffinit ().) If I were to do this, I believe it would go
beyond
>what ANSI.C offers
This is a good idea.
The converter should also print warnings whenever a variable is declared
"unsigned char", since MWC does not support this, but will sign-extend any byte
between 128 and 255 into a negative integer. The user then has to insert the
(var & 255) expressions wherever 'var' is used as a Lvalue.
And keep in mind that pre-processing the ANSI prototypes out of the code,
loses the protections they offer against getting arguments the wrong type
(backwards, pointers to wrong length, etc.). Pointers to different lengths of
integers are especially important, since we'd be porting code from a 32-bit
integer world into a 16-bit, and probably changing the declarations of some of
the vars.
I am a late convert to ANSI C (we never used that newfangled NIH stuff at
Bell Labs, except maybe bitfields), but those prototypes and strict type
checking in the compiler *and* the linker have saved my cute little pair of
biscuits more than once. I hate core dumps (which you don't get in OS9, just a
freeze-up).
--Mike K.
More information about the Coco
mailing list