1 /* SPDX-License-Identifier: GPL-2.0-or-later * 1 2 /* ANSI and traditional C compatibility macros 3 Copyright 1991, 1992 Free Software Foundati 4 This file is part of the GNU C Library. 5 6 */ 7 8 /* ANSI and traditional C compatibility macros 9 10 ANSI C is assumed if __STDC__ is #defined. 11 12 Macro ANSI C definition Tradit 13 ----- ---- - ---------- ------ 14 PTR `void *' `char 15 LONG_DOUBLE `long double' `doubl 16 VOLATILE `volatile' `' 17 SIGNED `signed' `' 18 PTRCONST `void *const' `char 19 ANSI_PROTOTYPES 1 not de 20 21 CONST is also defined, but is obsolete. Ju 22 23 DEFUN (name, arglist, args) 24 25 Defines function NAME. 26 27 ARGLIST lists the arguments, separated 28 parentheses. ARGLIST becomes the argu 29 30 ARGS list the arguments with their typ 31 ANSI C, and the type declarations in t 32 be separated with `AND'. For function 33 arguments, the last thing listed shoul 34 35 DEFUN_VOID (name) 36 37 Defines a function NAME, which takes n 38 39 obsolete -- EXFUN (name, (prototype)) 40 41 Replaced by PARAMS. Do not use; will 42 Was used in external function declarat 43 In ANSI C it is `NAME PROTOTYPE' (so P 44 parentheses). In traditional C it is 45 For a function that takes no arguments 46 47 PARAMS ((args)) 48 49 We could use the EXFUN macro to handle 50 the name is misleading and the result 51 simple macro to handle the parameter l 52 53 static int foo PARAMS ((int, cha 54 55 This produces: `static int foo();' or 56 57 EXFUN would have done it like this: 58 59 static int EXFUN (foo, (int, cha 60 61 but the function is not external...and 62 the function name out of the mess. E 63 obsolete; new code should be written t 64 65 For example: 66 extern int printf PARAMS ((CONST char 67 int DEFUN(fprintf, (stream, format), 68 FILE *stream AND CONST char 69 void DEFUN_VOID(abort) { ... } 70 */ 71 72 #ifndef _ANSIDECL_H 73 74 #define _ANSIDECL_H 1 75 76 77 /* Every source file includes this file, 78 so they will all get the switch for lint. 79 /* LINTLIBRARY */ 80 81 82 #if defined (__STDC__) || defined (_AIX) || (d 83 /* All known AIX compilers implement these thi 84 define __STDC__). The RISC/OS MIPS compile 85 in SVR4 mode, but does not define __STDC__. 86 87 #define PTR void * 88 #define PTRCONST void *CONST 89 #define LONG_DOUBLE long double 90 91 #define AND , 92 #define NOARGS void 93 #define CONST const 94 #define VOLATILE volatile 95 #define SIGNED signed 96 #define DOTS , ... 97 98 #define EXFUN(name, proto) name p 99 #define DEFUN(name, arglist, args) name(a 100 #define DEFUN_VOID(name) name(v 101 102 #define PROTO(type, name, arglist) type n 103 #define PARAMS(paramlist) paraml 104 #define ANSI_PROTOTYPES 1 105 106 #else /* Not ANSI C. */ 107 108 #define PTR char * 109 #define PTRCONST PTR 110 #define LONG_DOUBLE double 111 112 #define AND ; 113 #define NOARGS 114 #define CONST 115 #ifndef const /* some systems define it in hea 116 #define const 117 #endif 118 #define VOLATILE 119 #define SIGNED 120 #define DOTS 121 122 #define EXFUN(name, proto) name() 123 #define DEFUN(name, arglist, args) name a 124 #define DEFUN_VOID(name) name() 125 #define PROTO(type, name, arglist) type name ( 126 #define PARAMS(paramlist) () 127 128 #endif /* ANSI C. */ 129 130 #endif /* ansidecl.h */ 131
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.