Quels sont les arguments utilisés pour main
? Quelles variantes de main
définition est possible?Combien d'arguments a main() en C/C++
Répondre
C++ Standard: (Source)
Le C++ 98 norme dit dans la section 3.6.1.2
Il a un type de retour de type int , mais sinon son type est défini par l'implémentation. Toutes les mises en œuvre doivent permettre à la fois les définitions suivantes des principaux: int main() et int main (int argc, char * argv [])
Généralement il y a 3 ensembles de paramètres:
- aucun paramètre/
void
int argc, char ** argv
int argc, char ** argv, char ** env
Où argc
est le nombre de lignes de commande, argv
sont les lignes de commande réels et env
sont les variables d'environnement.
Fenêtres:
Pour une application de fenêtres que vous avez un point de WinMain d'entrée avec une signature différente au lieu de principal.
int WINAPI WinMain(
__in HINSTANCE hInstance,
__in HINSTANCE hPrevInstance,
__in LPSTR lpCmdLine,
__in int nCmdShow
);
OS X: (Source)
Mac OS X et Darwin ont un quatrième paramètre contenant l'information fournie par l'OS arbitraire, tel que le chemin d'accès à l'exécution binaire:
int main(int argc, char **argv, char **envp, char **apple)
et qu'env? – osgx
@osgx: Je ne suis pas sûr si d'autres sont possibles mais les 3 mentionnés ci-dessus sont supportés par g ++ –
Je n'ai jamais compris l'exigence que 'main' retourne' int'. 'main' est la seule fonction explicitement autorisée à avoir une valeur de retour implicite. Pourquoi sortir de votre façon de permettre 'principal 'de prétendre être« vide », plutôt que de simplement laisser« vide »pour commencer? –
- 1. La chaîne a combien de paramètres
- 2. PHP Mail, champ CC
- 3. Debian cc flat_namespace
- 4. Erreurs de compilateur A/UX cc sur le code trivial: "argument argc déclaré est manquant"
- 5. jqgrid Changer le pointeur en main
- 6. Initialisation d'un vecteur avant main() en C++
- 7. PHPMailer, serveur CC et Linux
- 8. Processus fork avec CC .NET
- 9. Prise en main d'Application Lifecycle Management
- 10. Poignée de main NodeJS WebSocket en panne?
- 11. Prise en main de PHP Extension-Development
- 12. Réplication SQL clé en main JAVA?
- 13. Fonctions d'appel de main() en C++
- 14. En maven, quelle est la différence entre main/resources et main/config?
- 15. Combien de fenêtres une application iPhone a-t-elle généralement?
- 16. Combien y-a-t-il de PHP inclus?
- 17. combien de caractères y a-t-il dans une console?
- 18. Combien de versions des normes C++ y a-t-il?
- 19. Commande XEmacs pour passer à l'accolade correspondante en mode cc
- 20. Comment savoir combien de fois un fichier a été téléchargé?
- 21. Combien de méthodes par défaut une classe a-t-elle?
- 22. Comptez combien de divs a un contenu spécifique?
- 23. Combien de frais généraux 'Update Check' a pour LINQ UPDATES
- 24. Omaha Salut main Evaluator
- 25. Que fait l'option `cc`` -ldl` dans la commande suivante?
- 26. Assistance avec le script de traitement CC
- 27. Combien y a-t-il de bits dans un quartet?
- 28. Déterminer combien de champs un objet Javascript a
- 29. Combien y a-t-il de pseudo-classes dans CSS?
- 30. Combien de bougies y a-t-il dans la boîte?
Juste là dans les liens "connexes": http://stackoverflow.com/questions/1621574/mains-signature-in-c En outre, vous étiqueter est incompatible avec votre titre. – dmckee
ajouté tag 'C++' pour la cohérence avec le titre – jschmier