Partage
  • Partager sur Facebook
  • Partager sur Twitter

declarer le main

Pour les BONS developpeurs C/C++

Anonyme
    16 août 2006 à 22:05:00

    yop yop yop !

    Alors voilou après quelques débats, on m'a montrer qu'il exister plusieurs declaration de main, selon que l'on est en win32 application, win32 console application, SDL, etc, j'aimerais savoir ce que vous en penser:

    void main() // paramètres inaccessibles

    main(int argc // nombre de paramètres

    main(int argc, char *argv[]) // paramètres seuls

    main(int argc, char *argv[], char *env[]) // tout

    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) ---> ma mienne que je me sers en SDL


    Quelle sont les bonnes à utiliser et quand les utiliser ??? quels sont les impacts si on en prend une qu'on aurais pas du (genre je prend void main() ca marche pour mon SDL mais je sais que ce n'est pas la bonne) ???

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2006 à 22:12:18

      La meilleure déclaration de main()? o_O
      Tu as pas trop le choix en général...


      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2006 à 22:28:01


        void main() // paramètres inaccessibles


        Oublie ça, main retourne un int. Tu as plusieurs possiblités:


        int main()


        ou


        int main(void)


        ou


        int main(int argc, char *argv[])


        pour l'API je ne sais pas
        • Partager sur Facebook
        • Partager sur Twitter
          16 août 2006 à 22:33:15

          Utiliser un main win32 quand on fait pas de winAPI ? Quel est l'intéret ?
          (au fait le main retourne obligatoirement un int comme l'a dit Octal)
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            17 août 2006 à 16:21:21

            Citation : Octal



            //Code C++
            int main()




            /*Code C */
            int main(void)



            Il ne faut pas mélanger c'est pas le meme langage meme si le C++ et pour le moment senser suporter le C ce qui ne sera pas forcement le cas dans quelque années ...
            • Partager sur Facebook
            • Partager sur Twitter
              17 août 2006 à 17:36:37

              Citation : angelsafrania

              Citation : Octal



              //Code C++
              int main()




              /*Code C */
              int main(void)



              Il ne faut pas mélanger c'est pas le meme langage meme si le C++ et pour le moment senser suporter le C ce qui ne sera pas forcement le cas dans quelque années ...


              Je vois pas en quoi int main (void) est pour le C et int main () pour le cpp. Faut m'expliquer la.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                17 août 2006 à 18:04:44

                Citation : Kr00pS


                Je vois pas en quoi int main (void) est pour le C et int main () pour le cpp. Faut m'expliquer la.


                Donc déja le C et le C++ sont deux langages differants donc ils ont des normes differantes.
                Et ne pas mettre de void dans les paramètre est une faute en C si tu prend un compilateur C et que tu complie ca il te jette.
                Comme pour les commantaire les // ne sont pas suporter en C
                • Partager sur Facebook
                • Partager sur Twitter
                  17 août 2006 à 18:08:14

                  Citation : angelsafrania


                  Comme pour les commantaire les // ne sont pas suporter en C




                  FAUX, les commentaires // sont supporter en C99 (la dernière norme du C)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 août 2006 à 18:34:01

                    Citation : angelsafrania

                    Citation : Kr00pS


                    Je vois pas en quoi int main (void) est pour le C et int main () pour le cpp. Faut m'expliquer la.


                    Donc déja le C et le C++ sont deux langages differants donc ils ont des normes differantes.
                    Et ne pas mettre de void dans les paramètre est une faute en C si tu prend un compilateur C et que tu complie ca il te jette.
                    Comme pour les commantaire les // ne sont pas suporter en C


                    Euh non ?

                    Mettre void ou pas, ça change rien.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 août 2006 à 18:42:58

                      Citation : Kr00pS

                      Citation : angelsafrania

                      Citation : Kr00pS


                      Je vois pas en quoi int main (void) est pour le C et int main () pour le cpp. Faut m'expliquer la.


                      Donc déja le C et le C++ sont deux langages differants donc ils ont des normes differantes.
                      Et ne pas mettre de void dans les paramètre est une faute en C si tu prend un compilateur C et que tu complie ca il te jette.
                      Comme pour les commantaire les // ne sont pas suporter en C


                      Euh non ?

                      Mettre void ou pas, ça change rien.


                      void n'est valide qu'en C, la forme () est valide en C ET C++.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        17 août 2006 à 18:57:50

                        Citation : asmanur


                        void n'est valide qu'en C, la forme () est valide en C ET C++.


                        Exactement le contraire.le () et valide en C++ et non en C ANSI
                        Pour la dernier norme pour les commantaire je ne savais pas.Moi je suis en C-ansi.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 août 2006 à 19:02:33

                          Je prend l'habitude de mettre des void quand il n'y a pas de paramètre, mais je ne remarque aucun Warning ou erreur lorsque je n'en mets pas. Si tu me trouves un lien qui confirme tout ça, je serai d'accord
                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 août 2006 à 19:07:57

                            Mon livre de C ("Langage C" de Claude delannoy, largement digne de confiance) dit ca

                            Citation : Pas de titre


                            Cependant, la norme accepte également la forme ancienne de l'en-tête[...]
                            float tirage() {}


                            Alors moi j'aimerais savoir d'ou tu tiens tes informations, surtout que je n'ai jamais lu quelque chose de tel.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              17 août 2006 à 19:17:53

                              quels sont les impacts si on en prend une qu'on aurais pas du ????
                              (genre je prend void main() ca marche pour mon SDL mais comme c'est WinAPI on m'a dit:
                              int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              declarer le main

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown