📄 cdefs.h
字号:
/* Copyright (C) 1992, 1993 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/ormodify it under the terms of the GNU Library General Public License aspublished by the Free Software Foundation; either version 2 of theLicense, 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNULibrary General Public License for more details.You should have received a copy of the GNU Library General PublicLicense along with the GNU C Library; see the file COPYING.LIB. Ifnot, write to the Free Software Foundation, Inc., 675 Mass Ave,Cambridge, MA 02139, USA. */#ifndef _SYS_CDEFS_H#define _SYS_CDEFS_H 1#ifdef __GNU_LIBRARY__#include <features.h>#endif#ifdef __GNUC__#ifndef __P#define __P(args) args /* GCC can always grok prototypes. */#endif#define __DOTS , .../* Figure out how to declare functions that (1) depend only on their parameters and have no side effects, or (2) don't return. *//*#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || defined(__cplusplus)*/#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) /* Old GCC way. */#ifndef __CONSTVALUE#define __CONSTVALUE __const__#define __CONSTVALUE2#endif#ifndef __NORETURN#define __NORETURN __volatile__#define __NORETURN2#endif#else /* New GCC way. */#ifndef __CONSTVALUE#define __CONSTVALUE#if defined(const) || !defined(__STDC__)#define __CONSTVALUE2 /* We don't want empty __attribute__ (()). */#else#define __CONSTVALUE2 __attribute__ ((const))#endif#endif#ifndef __NORETURN#define __NORETURN#ifdef noreturn#define __NORETURN2 /* We don't want empty __attribute__ (()). */#else#define __NORETURN2 __attribute__ ((noreturn))#endif#endif#endif#else /* Not GCC. */#define __inline /* No inline functions. */#define __CONSTVALUE /* No idempotent functions. */#define __CONSTVALUE2#define __NORETURN /* No functions-of-no-return. */#define __NORETURN2#if (defined (__STDC__) && __STDC__) || defined (__cplusplus)#ifndef __P#define __P(args) args#endif#define __const const#define __signed signed#define __volatile volatile#define __DOTS , ...#else /* Not ANSI C or C++. */#ifndef __P#define __P(args) () /* No prototypes. */#endif#define __const /* No ANSI C keywords. */#define __signed#define __volatile#define __DOTS#endif /* ANSI C or C++. */#endif /* GCC. */#if defined (__GNUC__) && __GNUC__ < 2/* In GCC version 2, (__extension__ EXPR) will not complain about GCC extensions used in EXPR under -ansi or -pedantic. */#define __extension__#endif/* For these things, GCC behaves the ANSI way normally, and the non-ANSI way under -traditional. */#if defined (__STDC__) && __STDC__#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 *typedef long double __long_double_t;#else#define __CONCAT(x,y) x/**/y#define __STRING(x) "x"#define __ptr_t char *typedef double __long_double_t;#endif/* The BSD header files use the ANSI keywords unmodified. (This means that old programs may lose if they use the new keywords as identifiers.) We define them to their __ versions, which are taken care of above. */#ifdef __USE_BSD/* __attribute__ uses const. */#if 0#define const __const#endif#define signed __signed#define volatile __volatile#endif/* 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#endif /* sys/cdefs.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -