📄 complex.h
字号:
/* Copyright (C) 1997, 1998, 1999, 2000 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. *//* * ISO C99: 7.3 Complex arithmetic <complex.h> */#ifndef _COMPLEX_H#define _COMPLEX_H 1#include <sys/types.h>#include <features.h>__BEGIN_DECLS#define __CONCAT(x,y) x ## y/* We might need to add support for more compilers here. But since ISO C99 is out hopefully all maintained compilers will soon provide the data types `float complex' and `double complex'. */#if __GNUC_PREREQ (2, 7) && !__GNUC_PREREQ (2, 97)# define _Complex __complex__#endif#define complex _Complex/* Narrowest imaginary unit. This depends on the floating-point evaluation method. XXX This probably has to go into a gcc related file. */#define _Complex_I (__extension__ 1.0iF)/* Another more descriptive name is `I'. XXX Once we have the imaginary support switch this to _Imaginary_I. */#undef I#define I _Complex_I/* The file <bits/cmathcalls.h> contains the prototypes for all the actual math functions. These macros are used for those prototypes, so we can easily declare each function as both `name' and `__name', and can declare the float versions `namef' and `__namef'. */#define __MATHCALL(function, args) \ __MATHDECL (_Mdouble_complex_,function, args)#define __MATHDECL(type, function, args) \ __MATHDECL_1(type, function, args); \ __MATHDECL_1(type, __CONCAT(__,function), args)#define __MATHDECL_1(type, function, args) \ extern type __MATH_PRECNAME(function) args __THROW#define _Mdouble_ double#define __MATH_PRECNAME(name) name#include <cmathcalls.h>#undef _Mdouble_#undef __MATH_PRECNAME/* Now the float versions. */#ifndef _Mfloat_# define _Mfloat_ float#endif#define _Mdouble_ _Mfloat_#ifdef __STDC__# define __MATH_PRECNAME(name) name##f#else# define __MATH_PRECNAME(name) name/**/f#endif#include <cmathcalls.h>#undef _Mdouble_#undef __MATH_PRECNAME#if 0/* And the long double versions. It is non-critical to define them here unconditionally since `long double' is required in ISO C99. */#if __STDC__ - 0 || __GNUC__ - 0 && !defined __NO_LONG_DOUBLE_MATH# ifndef _Mlong_double_# define _Mlong_double_ long double# endif# define _Mdouble_ _Mlong_double_# ifdef __STDC__# define __MATH_PRECNAME(name) name##l# else# define __MATH_PRECNAME(name) name/**/l# endif# include <cmathcalls.h>#endif#endif#undef _Mdouble_#undef __MATH_PRECNAME#undef __MATHDECL_1#undef __MATHDECL#undef __MATHCALL__END_DECLS#endif /* complex.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -