⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdefs.h

📁 KPIT GNU Tools is a set of GNU development tools for Renesas microcontrollers.
💻 H
字号:
/* Copyright (C) 1992,93,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.   This file is part of the GNU C Library.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  */#ifndef	_SYS_CDEFS_H#define	_SYS_CDEFS_H	1/* We are almost always included from features.h. */#ifndef _FEATURES_H# include <features.h>#endif/* The GNU libc does not support any K&R compilers or the traditional mode   of ISO C compilers anymore.  Check for some of the combinations not   anymore supported.  */#if defined __GNUC__ && !defined __STDC__# error "You need a ISO C conforming compiler to use the glibc headers"#endif#define __FBSDID(x) /* nothing *//* Some user header file might have defined this before.  */#undef	__P#undef	__PMT#ifdef __GNUC__/* GCC can always grok prototypes.  For C++ programs we add throw()   to help it optimize the function calls.  But this works only with   gcc 2.8.x and egcs.  */# if defined __cplusplus && __GNUC_PREREQ (2,8)#  define __THROW	throw ()# else#  define __THROW# endif# define __P(args)	args __THROW/* This macro will be used for functions which might take C++ callback   functions.  */# define __PMT(args)	args#else	/* Not GCC.  */# define __inline		/* No inline functions.  */# define __THROW# define __P(args)	args# define __PMT(args)	args# define __const	const# define __signed	signed# define __volatile	volatile#endif	/* GCC.  *//* For these things, GCC behaves the ANSI way normally,   and the non-ANSI way under -traditional.  */#define __CONCAT(x,y)	x ## y#define __STRING(x)	#x/* This is not a typedef so `const __ptr_t' does the right thing.  */#define __ptr_t void *#define __long_double_t  long double/* C++ needs to know that types and declarations are C, not C++.  */#ifdef	__cplusplus# define __BEGIN_DECLS	extern "C" {# define __END_DECLS	}#else# define __BEGIN_DECLS# define __END_DECLS#endif/* Support for bounded pointers.  */#ifndef __BOUNDED_POINTERS__# define __bounded	/* nothing */# define __unbounded	/* nothing */# define __ptrvalue	/* nothing */#endif/* Support for flexible arrays.  */#if __GNUC_PREREQ (2,97)/* GCC 2.97 supports C99 flexible array members.  */# define __flexarr	[]#else# ifdef __GNUC__#  define __flexarr	[0]# else#  if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L#   define __flexarr	[]#  else/* Some other non-C99 compiler.  Approximate with [1].  */#   define __flexarr	[1]#  endif# endif#endif/* __asm__ ("xyz") is used throughout the headers to rename functions   at the assembly language level.  This is wrapped by the __REDIRECT   macro, in order to support compilers that can do this some other   way.  When compilers don't support asm-names at all, we have to do   preprocessor tricks instead (which don't have exactly the right   semantics, but it's the best we can do).   Example:   int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */#if defined __GNUC__ && __GNUC__ >= 2# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias))# define __ASMNAME(cname)  __ASMNAME2 (__USER_LABEL_PREFIX__, cname)# define __ASMNAME2(prefix, cname) __STRING (prefix) cname/*#elif __SOME_OTHER_COMPILER__# define __REDIRECT(name, proto, alias) name proto; \	_Pragma("let " #name " = " #alias)*/#endif/* GCC has various useful declarations that can be made with the   `__attribute__' syntax.  All of the ways we use this do fine if   they are omitted for compilers that don't understand it. */#if !defined __GNUC__ || __GNUC__ < 2# define __attribute__(xyz)	/* Ignore */#endif/* At some point during the gcc 2.96 development the `malloc' attribute   for functions was introduced.  We don't want to use it unconditionally   (although this would be possible) since it generates warnings.  */#if __GNUC_PREREQ (2,96)# define __attribute_malloc__ __attribute__ ((__malloc__))#else# define __attribute_malloc__ /* Ignore */#endif/* At some point during the gcc 2.96 development the `pure' attribute   for functions was introduced.  We don't want to use it unconditionally   (although this would be possible) since it generates warnings.  */#if __GNUC_PREREQ (2,96)# define __attribute_pure__ __attribute__ ((__pure__))#else# define __attribute_pure__ /* Ignore */#endif/* At some point during the gcc 3.1 development the `used' attribute   for functions was introduced.  We don't want to use it unconditionally   (although this would be possible) since it generates warnings.  */#if __GNUC_PREREQ (3,1)# define __attribute_used__ __attribute__ ((__used__))# define __attribute_noinline__ __attribute__ ((__noinline__))#else# define __attribute_used__ __attribute__ ((__unused__))# define __attribute_noinline__ /* Ignore */#endif/* At some point during the gcc 2.8 development the `format_arg' attribute   for functions was introduced.  We don't want to use it unconditionally   (although this would be possible) since it generates warnings.   If several `format_arg' attributes are given for the same function, in   gcc-3.0 and older, all but the last one are ignored.  In newer gccs,   all designated arguments are considered.  */#if __GNUC_PREREQ (2,8)# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))#else# define __attribute_format_arg__(x) /* Ignore */#endif/* At some point during the gcc 2.97 development the `strfmon' format   attribute for functions was introduced.  We don't want to use it   unconditionally (although this would be possible) since it   generates warnings.  */#if __GNUC_PREREQ (2,97)# define __attribute_format_strfmon__(a,b) \  __attribute__ ((__format__ (__strfmon__, a, b)))#else# define __attribute_format_strfmon__(a,b) /* Ignore */#endif/* It is possible to compile containing GCC extensions even if GCC is   run in pedantic mode if the uses are carefully marked using the   `__extension__' keyword.  But this is not generally available before   version 2.8.  */#if !__GNUC_PREREQ (2,8)# define __extension__		/* Ignore */#endif/* __restrict is known in EGCS 1.2 and above. */#if !__GNUC_PREREQ (2,92)# define __restrict	/* Ignore */#endif/* ISO C99 also allows to declare arrays as non-overlapping.  The syntax is     array_name[restrict]   GCC 3.1 supports this.  */#if __GNUC_PREREQ (3,1) && !defined __GNUG__# define __restrict_arr	__restrict#else# ifdef __GNUC__#  define __restrict_arr	/* Not supported in old GCC.  */# else#  if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L#   define __restrict_arr	restrict#  else/* Some other non-C99 compiler.  */#   define __restrict_arr	/* Not supported.  */#  endif# endif#endif/* The nonull function attribute allows to mark pointer parameters which   must not be NULL.  */#if __GNUC_PREREQ (3,3)# define __nonnull(params) __attribute__ ((__nonnull__ params))#else# define __nonnull(params)#endif#endif	 /* sys/cdefs.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -