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

C++ Discussion :

int main(int argc, char** argv){


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut int main(int argc, char** argv){
    Bonjour,

    Quelle conséquence et quelle différence si j'écris mon code

    ainsi :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argc, char** argv){
    ou ainsi :

    Quel impact ? Qu'est-ce que je risque si je n'utilise que la seconde version plus compacte et épurée ?

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Ce que tu risques? rien.

    Par contre, tu n'auras pas accès aux arguments fournis par l'utilisateur lorsqu'il invoque ton programme.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 059
    Points : 12 095
    Points
    12 095
    Par défaut
    Quel impact ? Qu'est-ce que je risque si je n'utilise que la seconde version plus compacte et épurée ?
    La seconde version est bien moins flexible.
    C'est tellement pourri comme signature que je pense que la majorité des compilateurs ne l'acceptent pas avec leur paramétrage par défaut.
    Une application console qui ne prend pas de paramètre en ligne de commande, c'est quasi totalement useless.
    http://en.cppreference.com/w/cpp/language/main_function

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Points : 9
    Points
    9
    Par défaut
    Je peine à comprendre car je ne vois aucune différence à l'utilisation. Est-ce que c'est lié au fait que j'utilise Visual Studio ?

  5. #5
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    C'est surtout lié à ce que tu n'as pas d'arguments de commande.
    Quand c'est le cas, effectivement, ca ne sert à rien de les lire.

    Cela dit, la très grand majorité des programmes ont des options de commande, même les jeux vidéos.
    Ces arguments de commande sont les mêmes qu'on rajoute aux raccourcis.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  6. #6
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par wallace27 Voir le message
    Bonjour,

    Quelle conséquence et quelle différence si j'écris mon code

    ainsi :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argc, char** argv){
    ou ainsi :

    Quel impact ? Qu'est-ce que je risque si je n'utilise que la seconde version plus compacte et épurée ?
    argc, pour argument count est le nombre d'arguments passés à ton programme + 1
    argv, pour argument values sont les arguments en question, présentés sous forme de string c

    Par exemple, si tu appelles ton programme ainsi:
    affiche.exe titi tata // un exemple débile, certes

    argc sera égal à 3
    et
    argv[0] égal à affiche.exe
    argv[1] -- titi
    argv[2] -- tata

    s'il n'y a pas d'arguments passés à ton programme (ce qui est souvent vrai quand on programme un peu "à blanc", pour tester des idées, etc. dans un EDI, alors la seconde signature est tout aussi bonne. Je préciserais même que sous Windows la signature qui prend des arguments peut-être différente selon le type d'application (par ex: int wmain( int argc[ , wchar_t *argv[ ])

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. int main (int argc, char ** argv)
    Par wallace27 dans le forum C++
    Réponses: 5
    Dernier message: 26/06/2015, 15h33
  2. Exécution main(int argc,char **argv)
    Par jadoud dans le forum Visual Studio
    Réponses: 1
    Dernier message: 28/01/2012, 15h34
  3. int main (int argc,char** argv)
    Par shadowless dans le forum Débuter
    Réponses: 5
    Dernier message: 31/05/2011, 17h45
  4. Explication pour ca SVP -> int main(int argc, char *argv[])
    Par Hackaholic dans le forum Débuter
    Réponses: 7
    Dernier message: 01/09/2009, 10h05
  5. int main(int argc, char** argv)
    Par MABB dans le forum C++
    Réponses: 1
    Dernier message: 19/11/2007, 13h20

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