IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèque standard C Discussion :

C90 et C99 [Débat]


Sujet :

Bibliothèque standard C

  1. #1
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut C90 et C99
    Citation Envoyé par snake264 Voir le message
    Petit conseil si tu veux que ton code soit portable ne fait pas de commentaires // mais plutôt /* */


    Depuis quand les commentaires sont spécifiques selon les OS?
    Les deux manières sont justes, non?
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  2. #2
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Les deux manières sont juste oui. Mais ce que je voulais dire c'est que les commentaires à la mode C++, //, ne sont valables que depuis la norme C99, qui a encore pas mal de lacune niveau portabilité, et si on compile en ansi ou en C90 le compilo nous retournera des erreurs à cause de sa c'etait juste pour cela sinon c'est tout aussi juste de marquer l'une ou l'autre
    Vous pouvez aller voir mes tutos et mes critiques: ici
    Ainsi que mon: blog

    Je ne répondrai à aucune question technique par MP les forums sont présents pour ça

    c'est très intelligent un ordinateur: "Keyboard ERROR. No keyboard Connected. Press any key to continue..."

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Citation Envoyé par snake264 Voir le message
    Les deux manières sont juste oui. Mais ce que je voulais dire c'est que les commentaires à la mode C++, //, ne sont valables que depuis la norme C99, qui a encore pas mal de lacune niveau portabilité, et si on compile en ansi ou en C90 le compilo nous retournera des erreurs à cause de sa c'etait juste pour cela sinon c'est tout aussi juste de marquer l'une ou l'autre
    pour la précision
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  4. #4
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Je t'en prie
    Vous pouvez aller voir mes tutos et mes critiques: ici
    Ainsi que mon: blog

    Je ne répondrai à aucune question technique par MP les forums sont présents pour ça

    c'est très intelligent un ordinateur: "Keyboard ERROR. No keyboard Connected. Press any key to continue..."

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par buchs Voir le message
    Depuis quand les commentaires sont spécifiques selon les OS?
    Les deux manières sont justes, non?
    Qui a parlé d'OS ? C'est une question de norme. Les commentaires // ne sont supportés que par C99.

    La portabilité concerne aussi le changement de norme...
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    C'est une question de norme. Les commentaires // ne sont supportés que par C99
    Mais supportés aussi malheureusement par certains EDI C90/C++ comme ceux de Microsoft qui ont toujours toléré les commentaires C++ en C bien avant le C99 (que ce soit VC ou VS)
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  7. #7
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 508
    Points
    5 508
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    Mais supportés aussi malheureusement par certains EDI C90/C++ comme ceux de Microsoft qui ont toujours toléré les commentaires C++ en C bien avant le C99 (que ce soit VC ou VS)
    Ce sont des extensions propriétaires, donc pas portable. De manière générale, il est déconseillé d'écrire des commentaires avec la forme C++ en C, à moins d'écrire du code spécifique C99.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  8. #8
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    De manière générale, il est déconseillé d'écrire des commentaires avec la forme C++ en C, à moins d'écrire du code spécifique C99.
    Un jour où l'autre, faudra quand même que vous sautiez le pas!
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  9. #9
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    Ce sont des extensions propriétaires, donc pas portable. De manière générale, il est déconseillé d'écrire des commentaires avec la forme C++ en C, à moins d'écrire du code spécifique C99.

    Thierry
    +1
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  10. #10
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Un jour où l'autre, faudra quand même que vous sautiez le pas!
    Lorsque tous les constructeurs l'auront également fait. Microsoft par exemple est restée fidèle à la norme 90 (le coup des commentaires C++ autorisé n'a rien à voir avec le C99, c'est juste une extension MS à "son" langage C).

  11. #11
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 508
    Points
    5 508
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Un jour où l'autre, faudra quand même que vous sautiez le pas!
    Lorsque gcc sera conforme sur toutes les plateformes où il est porté, je franchirai ce pas, crois-moi. Pour l'heure, je ne connais guère que Comeau (et Intel?) comme compilateurs conformes à C99. En clair, si on veut écrire du code portable, C99 n'est pas une option à l'heure actuelle. La situation tend certes à s'améliorer, mais lentement.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  12. #12
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Un jour où l'autre, faudra quand même que vous sautiez le pas!
    Je pense que tant que C99 ne sera pas supporté par Visual Studio, c'est mort...
    Pas de Wi-Fi à la maison : CPL

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Je pense comme Emmanuel.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 508
    Points
    5 508
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Je pense que tant que C99 ne sera pas supporté par Visual Studio, c'est mort...
    +1

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  15. #15
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    bas sous windows il reste comeau + dinkumware, sous unix (au moins sous linux, solaris et bsd) il y a Sun Studio. Je n'ai pas Windows et pourtant j'avais déjà proposer d'acheter en groupe des licences dinkumware. Si vous attendez après microsoft ou même GCC, ça n'est pas demain la veille que vous allez vous y mettre. L'avancement de l'implémentation de la norme C99 dans GCC n'avance pas ou plus, j'ai compilé la dernière version (4.3.0) et la seule nouveauté (à ma connaissance) est la conformance du mot clé inline à la norme C99. bref pas de quoi se réjouir...
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  16. #16
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Si la norme C99 n'a pas encore été complètement implémentée par la plupart des compilos, c'est malheureusement que cette révision n'apporte rien de très intéressant...

    Mis à part "l'officialisation" de la gestion des caractères larges et le type long long déjà implémentés par la plupart des compilos C90, les "nouveautés" n'ont pas vraiment "agrémenté" le language C.

    Mis à part peut être les fonctions inline et les macros à argument variable (mais cela reste très subjectif..)

    Effectivement, tant que les poids lourds (tels que GCC, VS, ...) ne l'implémenterons pas totalement, il reste très difficile de faire du code C99 portable.
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  17. #17
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Effectivement, c'est très subjectif, moi j'ajouterais à ta liste, les "initialiseurs désignés", les VLAs (qui simplifient grandement la vie), la fonction snprintf(), j'aime bien les booléens, les littéraux composés, le qualificateur "static" dans les tableaux et deux ou trois petites macros bien sympathiques...
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  18. #18
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Personnellement je trouve que les VLA ne sont pas vraiment une bonne chose, je pense qu'il est quand même mieux d'utiliser un malloc() plutôt que de définir la taille d'un tableau avec une variable.
    Vous pouvez aller voir mes tutos et mes critiques: ici
    Ainsi que mon: blog

    Je ne répondrai à aucune question technique par MP les forums sont présents pour ça

    c'est très intelligent un ordinateur: "Keyboard ERROR. No keyboard Connected. Press any key to continue..."

  19. #19
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 508
    Points
    5 508
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Effectivement, c'est très subjectif, moi j'ajouterais à ta liste, les "initialiseurs désignés", les VLAs (qui simplifient grandement la vie), la fonction snprintf(), j'aime bien les booléens, les littéraux composés, le qualificateur "static" dans les tableaux et deux ou trois petites macros bien sympathiques...
    Ce sont des outils pratiques, certes. Actuellement, je n'utilise que snprintf() comme outils C99. Je livre mon code en général avec ma propre implantation pour les plateformes qui ne l'implante pas.

    Personnellement, je pense que C99 apporte de bonnes choses, mais écrire du code qui ne compile pas avec gcc sous unixoïde ou qui ne se comporte pas comme attendu, cela ne m'intéresse pas.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  20. #20
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par snake264 Voir le message
    Personnellement je trouve que les VLA ne sont pas vraiment une bonne chose, je pense qu'il est quand même mieux d'utiliser un malloc() plutôt que de définir la taille d'un tableau avec une variable.
    Ce que tu dis n'a pas de sens, quand tu fais un malloc(), tu construis bien un tableau (dans le tas) et généralement à partir d'une variable.

    Citation Envoyé par Thierry Chappuis Voir le message
    mais écrire du code qui ne compile pas avec gcc sous unixoïde cela ne m'intéresse pas.
    GCC n'est pas une fin en soit! ça n'est pas le seul compilateur, et ça n'est pas le meilleur compilateur.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

Discussions similaires

  1. devcpp et C99
    Par le y@m's dans le forum Dev-C++
    Réponses: 9
    Dernier message: 11/08/2006, 13h34
  2. Norme C90 ou C89
    Par gnto dans le forum C
    Réponses: 15
    Dernier message: 05/07/2006, 12h51
  3. Réponses: 11
    Dernier message: 12/02/2006, 22h46
  4. [INFO] C99 TC 1 & TC2 (DRAFT)
    Par Emmanuel Delahaye dans le forum C
    Réponses: 8
    Dernier message: 06/12/2005, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo