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