名稱空間
變體
操作

imaginary

來自 cppreference.com
< c‎ | numeric‎ | complex
定義在標頭檔案 <complex.h>
#define imaginary _Imaginary
(C99 起)

此宏擴充套件為關鍵字 _Imaginary

這是一個便捷宏,它使得可以使用 float imaginarydouble imaginarylong double imaginary 作為替代方式來編寫三種純虛數 C 型別 float _Imaginarydouble _Imaginarylong double _Imaginary

與 C 中任何純虛數支援一樣,此宏僅在支援虛數時定義。

定義 __STDC_IEC_559_COMPLEX__ 的編譯器不要求支援虛數。POSIX 建議檢查是否定義了宏 _Imaginary_I 以識別虛數支援。

(C99 起)
(C11 之前)

如果定義了 __STDC_IEC_559_COMPLEX__,則支援虛數。

(C11 起)

目錄

[編輯] 注意

程式被允許取消定義並可能重新定義 imaginary 宏。

迄今為止,已知只有 Oracle C 編譯器實現了虛數型別。

[編輯] 示例

#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double imaginary i = -2.0*I; // pure imaginary
    double f = 1.0; // pure real
    double complex z = f + i; // complex number
    printf("z = %.1f%+.1fi\n", creal(z), cimag(z));
}

輸出

z = 1.0-2.0i

[編輯] 參考

  • C17 標準 (ISO/IEC 9899:2018)
  • 7.3.1/5 imaginary (p: 136)
  • G.6/1 imaginary (p: 391-392)
  • C11 標準 (ISO/IEC 9899:2011)
  • 7.3.1/5 imaginary (p: 188)
  • G.6/1 imaginary (p: 537)
  • C99 標準 (ISO/IEC 9899:1999)
  • 7.3.1/3 imaginary (p: 170)
  • G.6/1 imaginary (p: 472)

[編輯] 另請參閱

複數型別宏
(關鍵字宏) [編輯]