複素数型は、実数部および虚数部の 2 つの部分から成り立っています。虚数型は、虚数部だけで成り立っています。
複素数型には、次の 3 つの型指定子があります。
複素数型のデータ・オブジェクトを宣言するには、次の型指定子のいずれかを使用します。
>>-+-float-------+--複素数------------------------------------->< +-double------+ '-long double-'
虚数単位 I は、float Complex 型の定数です。事前定義マクロ _Complex_I は、虚数単位の値を使用して、型 const float _Complex の定数式を表します。
複素数型および実浮動小数点型は、総称して 浮動小数点型 と呼ばれます。 それぞれの浮動小数点型は、対応する実際の型を持っています。実浮動小数点型の場合、それは同じ型です。 複素数型の場合、それは、型名からキーワード _Complex を削除することによって得られる型です。
複素数型の表記および位置合わせの要件は、対応する実際の型の 2 つのエレメントを含んでいる配列型と同じです。 実数部は最初のエレメントと等しく、虚数部は 2 番目のエレメントと等しくなります。
算術変換は、複素数型の実際の型の変換と同じです。いずれかのオペランドが複素数型の場 合、結果は複素数型になり、実数部に小さな方の型を持つ オペランドの方が、大きな方の実際の型に対応する複素数型へプロモートされます。例えば、 double _Complex を float _Complex に追加すると、結果の型として double _Complex が生まれます。
複素数型を実際の型にキャストすると、虚数部がドロップします。実際の型の値が複素数型に変換されると、複素数結果値の実数部は、対応する実際の型への変換規則によって決定され、複素数結果値の 虚数部は正のゼロまたは符号なしのゼロになります。
等号演算子および非等号演算子は、実際の型の場合と同じ振る舞いを持ちます。比較演算子はオペランドのような複素数型を持つことができません。
関連参照