Je viens de rencontrer ce terme dans ce post,Comment puis-je savoir si c89 ou c99 est appliqué par cl.exe?
comment puis-je vérifier quelle règle est réellement utilisée par mon compilateur?
Ou est-il possible de spécifier une règle pour cl.exe
?
Je viens de rencontrer ce terme dans ce post,Comment puis-je savoir si c89 ou c99 est appliqué par cl.exe?
comment puis-je vérifier quelle règle est réellement utilisée par mon compilateur?
Ou est-il possible de spécifier une règle pour cl.exe
?
Les compilateurs C99 doivent définir un symbole pré-requis __STDC_VERSION__
avec la valeur 199901L, ce que C90 ne devrait pas faire (rien ne les empêche de le faire et reste conforme à C90, mais j'en doute). De toute évidence, rien n'est sûr pour les compilateurs ou compilateurs non conformes en mode non conforme. Et il y a encore la question des bogues et de la transition (la dernière fois que j'ai vérifié par exemple, g ++ ne définissait pas encore la macro équivalente à la valeur prescrite pour C++ 98 alors que la plupart des gens que je connais pensent qu'il serait plus utile faites-le au lieu d'attendre l'implémentation de export
).
'__STDC_VERSION__' (deux caractères de soulignement) –
@Joe, corrigé, merci. – AProgrammer
cl.exe, le compilateur Microsoft? Il ne supporte pas C99, surtout.
Lire le manuel? :-) –
En fait, presque toutes les questions peuvent être résolues par "Lire le manuel", pourquoi restons-nous toujours à la place de "Lire le manuel"? – user198729
Microsoft * still * ne prend pas en charge C99, même dans Visual Studio 2010, vous pouvez donc utiliser C89 en toute sécurité. –