Question

J'utilise GCC 4.3.3 sur Ubuntu 9.04 64 bits et devenais erreurs en C ++ - commentaires de style dans le code C. Quand je dis « par défaut » dans le titre, je veux dire simplement invoquer gcc test.c

Selon le GCC 4.3.3 docs ( ici ), cela est pris en charge ... mais j'obtenu les erreurs de toute façon.

Ces erreurs sont partis avec un simple std = ajout de C99 à ma chaîne de compilation, donc mon problème est résolu. Curieux de savoir si les experts du CCG avaient là une explication pour cela, car il me semble être une contradiction évidente à la documentation.

#include <stdio.h>
// this is a comment

int main( void )
{
   return 0;
}
Était-ce utile?

La solution

Par defualt GCC utilise C89 / 90 standard avec des extensions de GCC. Au sens strict par défaut, il ne respecte pas une norme spécifique, puisque par défaut il n'émettra des messages de diagnostic dans les situations où ces messages sont par la norme requise. Vous devez exécuter gcc en mode -ansi -pedantic (peut-être aussi -Wall) afin de le faire coller à la norme. Et dans ce cas, vous aurez, encore une fois, C89 / 90.

Autres conseils

Il est possible Ubuntu est primordial la valeur par défaut, qui devrait être gnu89. Certes, je ne suis pas avec ma copie de GCC 4.3 (sur Debian).

% echo '// foo' | gcc-4.3 -x c -c -
% echo '// foo' | gcc-4.3 -std=gnu89 -x c -c -    
% echo '// foo' | gcc-4.3 -std=c89 -x c -c -    
<stdin>:1: error: expected identifier or '(' before '/' token

Citation de http://gcc.gnu.org/onlinedocs/gcc/Standards.html#Standards

  

La valeur par défaut, si aucun dialecte langage C   les options sont données, est std = gnu89

// comments sont reconnus par -std=gnu89

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top