web-dev-qa-db-fra.com

Que signifie le suffixe entier J?

J'ai la source suivante:

int main() { 000J; }

Avec gcc 4.8.4, il compile sans erreur. Je sais qu'il y a des suffixes comme L ou U, mais je n'ai rien trouvé sur J.

Alors qu'est-ce que ça fait?

62
happyMOOyear

Je reçois un avertissement:

Les constantes imaginaires sont une extension GNU

Le suffixe J est une extension GNU, qui fait que le littéral est d'un _Complex type.

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

71
emlai

Comme zenith l'a mentionné, il s'agit d'une extension GNU pour l'écriture de littéraux imaginaires. Je veux vraiment commenter l'utilisation de j à cette fin, comme imallett se le demande, mais je ne le fais pas '' Je n'ai pas assez de réputation pour commenter la réponse de Zenith. Je laisserai cette réponse de toute façon car elle pourrait être utile aux autres.

Comme ce lien l'explique, i et j peuvent être utilisés pour écrire des littéraux imaginaires en utilisant cette extension GNU. La raison pour laquelle i est utilisé pour cela est évident, mais la raison pour laquelle j est également utilisé est que j est couramment utilisé pour désigner l'unité imaginaire en génie électrique et en génie des systèmes de contrôle pour éviter toute confusion car i est déjà utilisé pour désigner le courant électrique dans ces contextes.

13
Jordan Melo