Create Xref-Html Frames                    Remove All Frames
file:c:/local/Cygwin/usr/include/_ansi.h        (Tue May 25 21:07:25 2004 )


   1: /* Provide support for both ANSI and non-ANSI environments.  */
   2: 
   3: /* Some ANSI environments are "broken" in the sense that __STDC__ cannot be
   4:    relied upon to have it's intended meaning.  Therefore we must use our own
   5:    concoction: _HAVE_STDC.  Always use _HAVE_STDC instead of __STDC__ in newlib
   6:    sources!
   7: 
   8:    To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   9:    "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
  10:    files aren't affected).  */
  11: 
  12: #ifndef _ANSIDECL_H_
  13: #define _ANSIDECL_H_
  14: 
  15: #include <newlib.h>
  16: #include <sys/config.h>
  17: 
  18: /* First try to figure out whether we really are in an ANSI C environment.  */
  19: /* FIXME: This probably needs some work.  Perhaps sys/config.h can be
  20:    prevailed upon to give us a clue.  */
  21: 
  22: #ifdef __STDC__
  23: #define _HAVE_STDC
  24: #endif
  25: 
  26: #ifdef _HAVE_STDC
  27: #define _PTR    void *
  28: #define _AND    ,
  29: #define _NOARGS   void
  30: #define _CONST    const
  31: #define _VOLATILE volatile
  32: #define _SIGNED   signed
  33: #define _DOTS   , ...
  34: #define _VOID void
  35: #ifdef __CYGWIN__
  36: #define _EXFUN(name, proto)   __cdecl name proto
  37: #define _EXPARM(name, proto)    (* __cdecl name) proto
  38: #else
  39: #define _EXFUN(name, proto)   name proto
  40: #define _EXPARM(name, proto)    (* name) proto
  41: #endif
  42: #define _DEFUN(name, arglist, args) name(args)
  43: #define _DEFUN_VOID(name)   name(_NOARGS)
  44: #define _CAST_VOID (void)
  45: #ifndef _LONG_DOUBLE
  46: #define _LONG_DOUBLE long double
  47: #endif
  48: #ifndef _PARAMS
  49: #define _PARAMS(paramlist)    paramlist
  50: #endif
  51: #else 
  52: #define _PTR    char *
  53: #define _AND    ;
  54: #define _NOARGS
  55: #define _CONST
  56: #define _VOLATILE
  57: #define _SIGNED
  58: #define _DOTS
  59: #define _VOID void
  60: #define _EXFUN(name, proto)   name()
  61: #define _DEFUN(name, arglist, args) name arglist args;
  62: #define _DEFUN_VOID(name)   name()
  63: #define _CAST_VOID
  64: #define _LONG_DOUBLE double
  65: #ifndef _PARAMS
  66: #define _PARAMS(paramlist)    ()
  67: #endif
  68: #endif
  69: 
  70: /* Support gcc's __attribute__ facility.  */
  71: 
  72: #ifdef __GNUC__
  73: #define _ATTRIBUTE(attrs) __attribute__ (attrs)
  74: #else
  75: #define _ATTRIBUTE(attrs)
  76: #endif
  77: 
  78: /*  ISO C++.  */
  79: 
  80: #ifdef __cplusplus
  81: #if !(defined(_BEGIN_STD_C) && defined(_END_STD_C))
  82: #ifdef _HAVE_STD_CXX
  83: #define _BEGIN_STD_C namespace std { extern "C" {
  84: #define _END_STD_C  } }
  85: #else
  86: #define _BEGIN_STD_C extern "C" {
  87: #define _END_STD_C  }
  88: #endif
  89: #endif
  90: #else
  91: #define _BEGIN_STD_C
  92: #define _END_STD_C
  93: #endif
  94: 
  95: #endif /* _ANSIDECL_H_ */
  96: 








































Html form generated by Xrefactory version 1.6.7 on Fri Sep 03 17:18:59 2004