update portability guide

From-SVN: r35041
This commit is contained in:
Michael Meissner 2000-07-15 04:18:47 +00:00 committed by Michael Meissner
parent 7de515541f
commit ae0e50e87b
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2000-07-15 Michael Meissner <meissner@redhat.com>
* README.Portability: Update integer suffixes and function
prototype sections.
2000-07-15 Neil Booth <NeilB@earthling.net> 2000-07-15 Neil Booth <NeilB@earthling.net>
* README.Portability: Small update. * README.Portability: Small update.

View File

@ -155,6 +155,9 @@ ansidecl.h for the definitions of the above macros and more.
#define PARAMS(paramlist) () /* K+R C. */ #define PARAMS(paramlist) () /* K+R C. */
#define VPARAMS(args) (va_alist) va_dcl #define VPARAMS(args) (va_alist) va_dcl
One aspect of using K+R style function declarations, is you cannot have
arguments whose types are char, short, or float, since without prototypes (ie,
K+R rules), these types are promoted to int, int, and double respectively.
Calling functions through pointers to functions Calling functions through pointers to functions
----------------------------------------------- -----------------------------------------------
@ -230,10 +233,6 @@ int is done as an unsigned comparison in K+R (since unsigned char
promotes to unsigned) while it is signed in ISO (since all of the promotes to unsigned) while it is signed in ISO (since all of the
values in unsigned char fit in an int, it promotes to int). values in unsigned char fit in an int, it promotes to int).
** Not having any argument whose type is a short type (char, short,
float of any flavor) and subject to promotion. **
Trigraphs Trigraphs
--------- ---------
@ -245,7 +244,11 @@ them.
Suffixes on Integer Constants Suffixes on Integer Constants
----------------------------- -----------------------------
**Using a 'u' suffix on integer constants.** K+R C did not accept a 'u' suffix on integer constants. If you want to declare
a constant to be be unsigned, you must use an explicit cast.
You should never use a 'l' suffix on integer constants ('L' is fine), since it
can easily be confused with the number '1'.
Common Coding Pitfalls Common Coding Pitfalls