C99 मानक के बाद से जटिल प्रकार C भाषा में हैं (-std=c99
जीसीसी का विकल्प) के । कुछ कंपाइलर जटिल प्रकारों को और अधिक पहले के मोड में भी लागू कर सकते हैं, लेकिन यह गैर-मानक और गैर-पोर्टेबल एक्सटेंशन (जैसे IBM XL, GCC, इंटेल, हो सकता है ...) है।
आप http://en.wikipedia.org/wiki/Complex.h से शुरू कर सकते हैं - यह जटिल से कार्यों का विवरण देता है।
यह नियमावली http://pubs.opengroup.org/onlinepubs/009604499/basedefs/complex.gov.in मैक्रोज़ के बारे में भी कुछ जानकारी देता है।
एक जटिल चर घोषित करने के लिए, का उपयोग करें
double _Complex a; // use c* functions without suffix
या
float _Complex b; // use c*f functions - with f suffix
long double _Complex c; // use c*l functions - with l suffix
किसी मान को जटिल में देने के लिए, _Complex_I
मैक्रो का उपयोग करें complex.h
:
float _Complex d = 2.0f + 2.0f*_Complex_I;
(वास्तव (0,-0i)
में जटिल के आधे हिस्से में संख्या और NaN के साथ कुछ समस्याएं हो सकती हैं )
मॉड्यूल है cabs(a)
/ cabsl(c)
/ cabsf(b)
; असली हिस्सा है creal(a)
, इमेजिनरी है cimag(a)
। carg(a)
जटिल तर्क के लिए है।
वास्तविक पहुंच वाले हिस्से (पढ़ने / लिखने) की कल्पना करने के लिए आप इस GCC- एक्सटेंशन का उपयोग कर सकते हैं :
__real__ a = 1.4;
__imag__ a = 2.0;
float b = __real__ a;