~ubuntu-branches/ubuntu/natty/dealer/natty

« back to all changes in this revision

Viewing changes to Random/ansidecl.h

  • Committer: Bazaar Package Importer
  • Author(s): Christoph Berg
  • Date: 2005-09-07 23:32:20 UTC
  • Revision ID: james.westby@ubuntu.com-20050907233220-e7bsghnrwg1ncye4
Tags: upstream-0.20040530
ImportĀ upstreamĀ versionĀ 0.20040530

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (C) 1991 Free Software Foundation, Inc.
 
2
This file is part of the GNU C Library.
 
3
 
 
4
The GNU C Library is free software; you can redistribute it and/or modify
 
5
it under the terms of the GNU General Public License as published by
 
6
the Free Software Foundation; either version 1, or (at your option)
 
7
any later version.
 
8
 
 
9
The GNU C Library is distributed in the hope that it will be useful,
 
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
GNU General Public License for more details.
 
13
 
 
14
You should have received a copy of the GNU General Public License
 
15
along with the GNU C Library; see the file COPYING.  If not, write to
 
16
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
17
 
 
18
/* ANSI and traditional C compatibility macros
 
19
 
 
20
   ANSI C is assumed if __STDC__ is #defined.
 
21
 
 
22
   Macro        ANSI C definition       Traditional C definition
 
23
   -----        ---- - ----------       ----------- - ----------
 
24
   PTR          `void *'                `char *'
 
25
   LONG_DOUBLE  `long double'           `double'
 
26
   CONST        `const'                 `'
 
27
   VOLATILE     `volatile'              `'
 
28
   SIGNED       `signed'                `'
 
29
   PTRCONST     `void *const'           `char *'
 
30
 
 
31
   DEFUN(name, arglist, args)
 
32
 
 
33
        Defines function NAME.
 
34
 
 
35
        ARGLIST lists the arguments, separated by commas and enclosed in
 
36
        parentheses.  ARGLIST becomes the argument list in traditional C.
 
37
 
 
38
        ARGS list the arguments with their types.  It becomes a prototype in
 
39
        ANSI C, and the type declarations in traditional C.  Arguments should
 
40
        be separated with `AND'.  For functions with a variable number of
 
41
        arguments, the last thing listed should be `DOTS'.
 
42
 
 
43
   DEFUN_VOID(name)
 
44
 
 
45
        Defines a function NAME, which takes no arguments.
 
46
 
 
47
   EXFUN(name, prototype)
 
48
 
 
49
        Is used in an external function declaration.
 
50
        In ANSI C it is `NAMEPROTOTYPE' (so PROTOTYPE should be enclosed in
 
51
        parentheses).  In traditional C it is `NAME()'.
 
52
        For a function that takes no arguments, PROTOTYPE should be `(NOARGS)'.
 
53
 
 
54
    For example:
 
55
        extern int EXFUN(printf, (CONST char *format DOTS));
 
56
        int DEFUN(fprintf, (stream, format),
 
57
                  FILE *stream AND CONST char *format DOTS) { ... }
 
58
        void DEFUN_VOID(abort) { ... }
 
59
*/
 
60
 
 
61
#ifndef _ANSIDECL_H
 
62
 
 
63
#define _ANSIDECL_H     1
 
64
 
 
65
 
 
66
/* Every source file includes this file,
 
67
   so they will all get the switch for lint.  */
 
68
/* LINTLIBRARY */
 
69
 
 
70
 
 
71
#ifdef  __STDC__
 
72
 
 
73
#define PTR             void *
 
74
#define PTRCONST        void *CONST
 
75
#define LONG_DOUBLE     long double
 
76
 
 
77
#define AND             ,
 
78
#define NOARGS          void
 
79
#define CONST           const
 
80
#define VOLATILE        volatile
 
81
#define SIGNED          signed
 
82
#define DOTS            , ...
 
83
 
 
84
#define EXFUN(name, proto)              name proto
 
85
#define DEFUN(name, arglist, args)      name(args)
 
86
#define DEFUN_VOID(name)                name(NOARGS)
 
87
 
 
88
#else   /* Not ANSI C.  */
 
89
 
 
90
#define PTR             char *
 
91
#define PTRCONST        PTR
 
92
#define LONG_DOUBLE     double
 
93
 
 
94
#define AND             ;
 
95
#define NOARGS
 
96
#define CONST
 
97
#define VOLATILE
 
98
#define SIGNED
 
99
#define DOTS
 
100
 
 
101
#define EXFUN(name, proto)              name()
 
102
#define DEFUN(name, arglist, args)      name arglist args;
 
103
#define DEFUN_VOID(name)                name()
 
104
 
 
105
#endif  /* ANSI C.  */
 
106
 
 
107
 
 
108
#endif  /* ansidecl.h   */