?
? ????? PHP ??? ???? ??? ?? ??
如果宏實例__STDC_NO_COMPLEX__由實現(xiàn)定義,則將不提供復雜類型,頭文件<complex.h>和此處列出的所有名稱。 | (自C11以來) |
---|
C程序設計語言,C99的,支持復雜的數(shù)數(shù)學與三個內置的類型double _Complex
,float _Complex
和long double _Complex
(見_Complex)。當報頭<complex.h>
被包括,三個復數(shù)類型也是可訪問double complex
,float complex
,long double complex
。
除了復雜類型,這三個假想類型可以支持:double _Imaginary
,float _Imaginary
,和long double _Imaginary
(參見_Imaginary)。當報頭<complex.h>
被包括,三個假想類型也是相同的可訪問double imaginary
,float imaginary
和long double imaginary
。
標準算術運算符+, -, *, /
可以與任何組合中的真實,復雜和虛構類型一起使用。
建議定義__STDC_IEC_559_COMPLEX__的編譯器,但不要求支持虛數(shù)。POSIX建議檢查宏_Imaginary_I是否被定義為標識虛數(shù)支持。 | (自C99開始)(直到C11) |
---|---|
如果定義了__STDC_IEC_559_COMPLEX__,則支持虛數(shù)。 | (自C11以來) |
| 在頭文件<complex.h> |中定義
|:----|
| 類型|
| 想象(C99)| 虛構類型宏(宏常量)|
| 復雜(C99)| 復雜類型宏(宏常量)|
| 虛數(shù)|
| _Imaginary_I(C99)| 虛數(shù)單元常數(shù)i(宏常數(shù))|
| _Complex_I(C99)| 復數(shù)單位常數(shù)i(宏常數(shù))|
| I(C99)| 復數(shù)或虛數(shù)單元常數(shù)i(宏常數(shù))|
| 操作|
| CMPLXCMPLXFCMPLXL(C11)(C11)(C11)| 從實部和虛部(函數(shù)宏)|構造一個復數(shù)
| crealcrealfcreall(C99)(C99)(C99)| 計算復數(shù)(函數(shù))|的實部
| cimagcimagfcimagl(C99)(C99)(C99)| 計算復數(shù)(函數(shù))|的虛部
| cabscabsfcabsl(C99)(C99)(C99)| 計算復數(shù)(函數(shù))|的大小
| cargcargfcargl(C99)(C99)(C99)| 計算復數(shù)(函數(shù))|的相位角
| conjconjfconjl(C99)(C99)(C99)| 計算復共軛(函數(shù))|
| cprojcprojfcprojl(C99)(C99)(C99)| 計算黎曼球體(函數(shù))|上的投影
| 指數(shù)函數(shù)|
| cexpcexpfcexpl(C99)(C99)(C99)| 計算復數(shù)基-e指數(shù)(函數(shù))|
| clogclogfclogl(C99)(C99)(C99)| 計算復數(shù)自然對數(shù)(函數(shù))|
| 電源功能|
| cpowcpowfcpowl(C99)(C99)(C99)| 計算復數(shù)冪函數(shù)(函數(shù))|
| csqrtcsqrtfcsqrtl(C99)(C99)(C99)| 計算復平方根(函數(shù))|
| 三角函數(shù)|
| csincsinfcsinl(C99)(C99)(C99)| 計算復雜正弦函數(shù)| |
| ccosccosfccosl(C99)(C99)(C99)| 計算復余弦(函數(shù))|
| ctanctanfctanl(C99)(C99)(C99)| 計算復切線(函數(shù))|
| casincasinfcasinl(C99)(C99)(C99)| 計算復雜的反正弦(函數(shù))|
| cacoscacosfcacosl(C99)(C99)(C99)| 計算復合反余弦(函數(shù))|
| catancatanfcatanl(C99)(C99)(C99)| 計算復數(shù)反正切(函數(shù))|
| 雙曲函數(shù)|
| csinhcsinhfcsinhl(C99)(C99)(C99)| 計算復數(shù)雙曲正弦函數(shù)| |
| ccoshccoshfccoshl(C99)(C99)(C99)| 計算復雙曲余弦(函數(shù))|
| ctanhctanhfctanhl(C99)(C99)(C99)| 計算復雙曲正切(函數(shù))|
| casinhcasinhfcasinhl(C99)(C99)(C99)| 計算復數(shù)雙曲正弦曲線(函數(shù))|
| cacoshcacoshfcacoshl(C99)(C99)(C99)| 計算復曲線雙曲余弦(函數(shù))|
| catanhcatanhfcatanhl(C99)(C99)(C99)| 計算復圓弧雙曲正切函數(shù)| |
下面的函數(shù)名保留為將來除了complex.h
并且不可用于在包括頭節(jié)目:cerf
,cerfc
,cexp2
,cexpm1
,clog10
,clog1p
,clog2
,clgamma
,和ctgamma
,連同他們-f -l和后綴的變體。
雖然C標準將反雙曲線命名為“復圓弧雙曲正弦”等,但雙曲函數(shù)的反函數(shù)是區(qū)域函數(shù)。他們的論點是雙曲線領域,而不是弧線。正確的名稱是“復反雙曲正弦”等。一些作者使用“復曲面雙曲正弦”等。
如果一個復數(shù)或虛數(shù)的一個成分是無限的,即使另一個成分是NaN,它也是無限的。
如果兩個分量既不是無窮也不是NaN,則復數(shù)或虛數(shù)是有限的。
如果兩個分量均為正或負零,則復數(shù)或虛數(shù)為零。
#include <stdio.h>#include <complex.h>#include <tgmath.h> int main(void){ double complex z1 = I * I; // imaginary unit squared printf("I * I = %.1f%+.1fi\n", creal(z1), cimag(z1)); double complex z2 = pow(I, 2); // imaginary unit squared printf("pow(I, 2) = %.1f%+.1fi\n", creal(z2), cimag(z2)); double PI = acos(-1); double complex z3 = exp(I * PI); // Euler's formula printf("exp(I*PI) = %.1f%+.1fi\n", creal(z3), cimag(z3)); double complex z4 = 1+2*I, z5 = 1-2*I; // conjugates printf("(1+2i)*(1-2i) = %.1f%+.1fi\n", creal(z4*z5), cimag(z4*z5));}
輸出:
I * I = -1.0+0.0ipow(I, 2) = -1.0+0.0iexp(I*PI) = -1.0+0.0i(1+2i)*(1-2i) = 5.0+0.0i
C11標準(ISO / IEC 9899:2011):
6.10.8.3/1/2 __STDC_NO_COMPLEX__(p:177)
6.10.8.3/1/2 __STDC_IEC_559_COMPLEX__(p:177)
7.3復雜算術<complex.h>(p:188-199)
7.3.1 / 2 __STDC_NO_COMPLEX__(p:188)
7.25類型通用數(shù)學<tgmath.h>(p:373-375)
7.31.1復雜算術<complex.h>(p:455)
B.2復雜<complex.h>(p:475-477)
附錄G(規(guī)范性附錄)兼容IEC 60559的復數(shù)運算(p:532-545)
G.1 / 1 __STDC_IEC_559_COMPLEX__(p:532)
C99標準(ISO / IEC 9899:1999):
6.10.8 / 2 __STDC_IEC_559_COMPLEX__(p:161)
7.3復雜算術<complex.h>(p:170-180)
7.22類型通用數(shù)學<tgmath.h>(p:335-337)
7.26.1復雜算術<complex.h>(p:401)
B.2復雜<complex.h>(p:419-420)
附錄G(資料性附錄)符合IEC 60559的復雜算術(p:467-480)
G.1 / 1 __STDC_IEC_559_COMPLEX__(p:467)
| 用于復數(shù)運算的C ++文檔
|:----|