home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / cawf407.zip / src / ansi.h next >
C/C++ Source or Header  |  1993-12-28  |  2KB  |  57 lines

  1. /* The <ansi.h> header attempts to decide whether the compiler has enough
  2.  * conformance to Standard C for Minix to take advantage of.  If so, the
  3.  * symbol _ANSI is defined (as 31415).  Otherwise _ANSI is not defined
  4.  * here, but it may be defined by applications that want to bend the rules.
  5.  * The magic number in the definition is to inhibit unnecessary bending
  6.  * of the rules.  (For consistency with the new '#ifdef _ANSI" tests in
  7.  * the headers, _ANSI should really be defined as nothing, but that would
  8.  * break many library routines that use "#if _ANSI".)
  9.  
  10.  * If _ANSI ends up being defined, a macro
  11.  *
  12.  *    _PROTOTYPE(function, params)
  13.  *
  14.  * is defined.  This macro expands in different ways, generating either
  15.  * ANSI Standard C prototypes or old-style K&R (Kernighan & Ritchie)
  16.  * prototypes, as needed.  Finally, some programs use _CONST, _VOIDSTAR etc
  17.  * in such a way that they are portable over both ANSI and K&R compilers.
  18.  * The appropriate macros are defined here.
  19.  */
  20.  
  21. #ifndef _ANSI_H
  22. #define _ANSI_H
  23.  
  24. #if __STDC__ == 1
  25. #define _ANSI        31459    /* compiler claims full ANSI conformance */
  26. #endif
  27.  
  28. #ifdef __GNUC__
  29. #define _ANSI        31459    /* gcc conforms enough even in non-ANSI mode */
  30. #endif
  31.  
  32. #ifdef _ANSI
  33.  
  34. /* Keep everything for ANSI prototypes. */
  35. #define    _PROTOTYPE(function, params)    function params
  36.  
  37. #define    _VOIDSTAR    void *
  38. #define    _VOID        void
  39. #define    _CONST        const
  40. #define    _VOLATILE    volatile
  41. #define _SIZET        size_t
  42.  
  43. #else
  44.  
  45. /* Throw away the parameters for K&R prototypes. */
  46. #define    _PROTOTYPE(function, params)    function()
  47.  
  48. #define    _VOIDSTAR    void *
  49. #define    _VOID        void
  50. #define    _CONST
  51. #define    _VOLATILE
  52. #define _SIZET        int
  53.  
  54. #endif /* _ANSI */
  55.  
  56. #endif /* ANSI_H */
  57.