62 votes

Que signifie le suffixe J pour les nombres entiers ?

Je dispose de la source suivante :

int main() { 000J; }

Avec gcc 4.8.4, il compile sans erreur. Je sais qu'il existe des suffixes comme L ou U, mais je n'ai rien trouvé à propos de J.

Que fait-il donc ?

71voto

zenith Points 18532

Je reçois un avertissement :

Les constantes imaginaires sont une extension de GNU

Les J est une extension GNU, qui fait que le littéral est de type _Complex type.

Plus d'informations ici : https://gcc.gnu.org/onlinedocs/gcc/Complex.html

13voto

Jordan Melo Points 483

Comme l'a mentionné zenith, il s'agit d'une extension GNU permettant d'écrire des littéraux imaginaires. Je voudrais vraiment commenter la raison d'être de l'utilisation de j à cette fin, comme le demande imallett, mais je n'ai pas assez de réputation pour commenter la réponse de zenith. Je vais tout de même laisser cette réponse, car elle pourrait être utile à d'autres.

En tant que ce lien explique que les deux i y j peut être utilisé pour écrire des littéraux imaginaires en utilisant cette extension GNU. La raison pour laquelle i est utilisé à cette fin est évidente, mais la raison pour laquelle le j est également utilisé est que j est couramment utilisé pour désigner l'unité imaginaire dans l'ingénierie électrique et l'ingénierie des systèmes de contrôle, afin d'éviter toute confusion avec l'unité imaginaire. i est déjà utilisé pour désigner le courant électrique dans ces contextes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X