_Complex_I
|
Défini dans l'en-tête
<complex.h>
|
||
|
#define _Complex_I /* non spécifié */
|
(depuis C99) | |
La macro
_Complex_I
s'étend à une valeur de type
const
float
_Complex
avec la valeur de l'unité imaginaire.
Table des matières |
Notes
Cette macro peut être utilisée lorsque I n'est pas disponible, par exemple lorsqu'elle a été désactivée par l'application.
Contrairement à _Imaginary_I et CMPLX , l'utilisation de cette macro pour construire un nombre complexe peut entraîner la perte du signe de zéro sur la partie imaginaire.
Exemple
#include <stdio.h> #include <complex.h> #undef I #define J _Complex_I // can be used to redefine I int main(void) { // can be used to construct a complex number double complex z = 1.0 + 2.0 * _Complex_I; printf("1.0 + 2.0 * _Complex_I = %.1f%+.1fi\n", creal(z), cimag(z)); // sign of zero may not be preserved double complex z2 = 0.0 + -0.0 * _Complex_I; printf("0.0 + -0.0 * _Complex_I = %.1f%+.1fi\n", creal(z2), cimag(z2)); }
Sortie possible :
1.0 + 2.0 * _Complex_I = 1.0+2.0i 0.0 + -0.0 * _Complex_I = 0.0+0.0i
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.3.1/4 _Complex_I (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.3.1/4 _Complex_I (p: 136)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 7.3.1/4 _Complex_I (p: 188)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.3.1/2 _Complex_I (p: 170)
Voir aussi
|
(C99)
|
la constante d'unité imaginaire i
(macro constante) |
|
(C99)
|
la constante d'unité complexe ou imaginaire i
(macro constante) |