Bonjour,
Quelle conséquence et quelle différence si j'écris mon code
ainsi :
ou ainsi :Code:int main(int argc, char** argv){
Quel impact ? Qu'est-ce que je risque si je n'utilise que la seconde version plus compacte et épurée ?Code:int main(){
Version imprimable
Bonjour,
Quelle conséquence et quelle différence si j'écris mon code
ainsi :
ou ainsi :Code:int main(int argc, char** argv){
Quel impact ? Qu'est-ce que je risque si je n'utilise que la seconde version plus compacte et épurée ?Code:int main(){
Ce que tu risques? rien.
Par contre, tu n'auras pas accès aux arguments fournis par l'utilisateur lorsqu'il invoque ton programme.
La seconde version est bien moins flexible.Citation:
Quel impact ? Qu'est-ce que je risque si je n'utilise que la seconde version plus compacte et épurée ?
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
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 ?
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.
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[ ])