7
votes

Différences entre GNU C ++ et Microsoft Visual C ++

Quelles sont les différences entre GNU C ++ 4.3 et MSVC ++ 10? Je parle de fonctionnalités de la langue et de conformité aux normes.


4 commentaires

C'est une question assez large. Quelles versions vous demandez-vous?


@Gabe Vous pouvez prendre en compte les dernières versions.


Gulshan: "Dernière" change toujours. Les compilateurs sortent toujours avec de nouvelles fonctionnalités et les normes évoluent continuellement. Veuillez spécifier des versions ou la question ne sera pas valide.


@Gabe GNU 4.3+ (Dernier est 4.5.2) et MSVC ++ 10


3 Réponses :


0
votes

Les fonctions de langue sont formées par compilateur car elles sont implémentées dans le compilateur.

Ainsi, lorsque vous parlez de différences de mise en œuvre - vous parlez de différences de compilateurs. Il n'y a pas de différence dans les implémentations sans compilateurs.


4 commentaires

Une remarque valide, cependant, peut-être plus appropriée comme commentaire à la Q.


@GULSHAN: Mon commentaire ne concerne pas votre question, c'est un commentaire de la réponse d'Abatishchev.


@sharkin Soo Désolé. Je t'ai t'adressé par erreur.


Je voulais télécharger les options du compilateur comme "Ce compilateur fait cela et celui-ci ne supporte pas cela". Donc, j'ai déclaré des caractéristiques de la langue. Je pense, il y a des différences de mise en œuvre sans compilateurs. C'est les caractéristiques. En tous cas. Peut-être que vous avez ce que je veux. Alors, s'il vous plaît répondre si vous savez.



-2
votes

Je ne pense pas que les fonctionnalités de la langue seraient terriblement différentes. Je veux dire que la langue reste la même. La différence serait dans les bibliothèques disponibles avec chaque mise en œuvre. VC ++ est livré avec des charges pour fonctionner sur la plate-forme Windows et est le choix préféré pour celui-ci.


7 commentaires

-1, les caractéristiques de la langue et la conformité peuvent en effet différer entre des implémentations. Par exemple. VC ++ Portée anti-boucle antérieure ou types UNICODE intégrées.


Impressionnant. Juste au cas où vous l'avez manqué, j'ai dit que je ne "pense pas". Ce qui signifie que je fais une devinière ici. Je ne pense pas avoir donné une mauvaise réponse, mais c'est comme ça que je pense que c'est peut-être. Vous devez donc lire avant de cliquer sur le bouton Tempter Down Vut. Aussi, j'ai dit qu'ils ne seraient pas terriblement différents, je suis sûr que vous pensez que l'un est plus proche de Lisp et d'autres à Haskell n'est-ce pas ???


@Sidharth: Indépendamment, le vote devrait montrer aux futurs lecteurs la qualité de la réponse. Étant donné que votre réponse est fausse (ou subjective au mieux), elle devrait être évitée de souligner que cela peut être une information trompeuse, c'est ainsi que cela fonctionne. Cela n'a rien à voir avec vos intentions.


La réponse n'était ni mauvaise ni trompeuse. Bien sûr, des personnes qui sont lentes ne pourront pas comprendre que je ne suis pas concluante mais la majorité sera. Tout ce que vous pouvez télécharger tout ce que vous voulez. Cela ne fait pas "c'est comment ça marche" plus valide.


@Sidharth: Ce n'est pas mon ambition de dégrader vos efforts pour exprimer une opinion ou même faire des suppositions. Cependant, ce n'est donc pas l'endroit car ce n'est pas un forum régulier comme si nous sommes habitués. Il manque (intentionnellement) des installations appropriées pour la discussion. Ce sont juste des questions et des réponses et voter pour signaler la pertinence, la qualité et l'exactitude. Donc, si vous voulez, ignorez tout cela, le résultat final est que votre message ne répond pas à la Q.


Je ne suis pas concerné par vos ambitions ou votre manque de manque. Et l'essentiel est que j'ai donné une suggestion constructive qui est "non" erronée (j'ai écrit les implémentations ne sera pas extrêmement différente, ce qui est sur place, malgré ce que vous diriez à propos de A pour la boucle) et vous " J'ai donné un monologue sur la façon de courir. Allez comprendre.


La réponse est en réalité fausse, il existe de grandes différences importantes entre GCC et le compilateur Microsoft. Par exemple, le constructeur par défaut pour les entiers dans Microsoft Compiler ne fait rien, c'est-à-dire des déchets de mémoire sur la variable, cela provoque des problèmes difficiles à déboguer des problèmes inattendus. Ainsi, ce n'est pas un forum de conversation, si la réponse n'est pas utile, elle ne devrait pas être évitée et si elle est mal placée, elle doit être évitée.



5
votes

Voici deux pages qui pourraient être utiles:

  1. Options Contrôle de la dialecte C ++ (GNU C ++)
  2. Les problèmes de conformité des normes dans Visual C ++ (Microsoft C ++)

    Recherchez le mot-clé "Standard" dans le premier lien, cela vous montrera quelles options perfectionnent la conformité des normes. Le deuxième lien est assez explicite, mais c'est la version de 2003. Il est possible que plus de conformité de normes (non) aient été intégrées dans des versions ultérieures.


0 commentaires