|
Bas de page | |
---|---|
Auteur | Sujet : Exercice de la piscine 42: afficher l'alphabet |
raiden5002 | Bonjour tout le monde, voila je commence a apprendre le C, mais comme je l'apprend seul, en regardant des videos sur youtube je progresse pas trop.
--------------- http://forum.hardware.fr/hfr/Achat [...] 4112_1.htm |
Publicité | Posté le 22-05-2017 à 16:40:47 |
raiden5002 | Bonjour, merci pour votre aide mais en faite ce que je ne comprends pas c'est donc, qu'on est d'accord qu'en C il nous faut toujours ceci en debut:
Message édité par raiden5002 le 24-05-2017 à 00:02:59 --------------- http://forum.hardware.fr/hfr/Achat [...] 4112_1.htm |
rat de combat attention rongeur méchant! |
Oui et Non, c'est un peu compliqué. Un logiciel écrit en C sera souvent composé de plusieurs fichiers .c histoire de mettre un peu d'ordre (genre pour un logiciel de simulation de physique p.ex. un fichier .c pour le code en rapport avec l'interface graphique, un fichier pour la partie simulation, un fichier pour des fonctions mathématiques utilisés, ...) et pour ne pas avoir un seul fichier énorme (des gros logiciels ça peut être des centaines de milliers de lignes de code!). Un seul fichier dans le projet doit contenir la fonction main(). Quand on lance le compilateur (p.ex. GCC ou celui de Microsoft dont j'ignore le nom) il se passe en réalité plusieurs choses avec plusieurs logiciels qui forment la "toolchain" (mais comme tout est automatique - heureusement - on ne le remarque généralement pas à moins de savoir quoi chercher). Ce qui est important c'est que chaque fichier .c est traité séparément et transformé dans une espèce de fichier code machine intermédiaire (peu importe). Cette étape est la compilation en soit et elle est possible pour tout fichier .c avec une syntaxe valide, peu importe si il y a une fonction main() ou pas. Ensuite un logiciel appellé "Linker" (ne regarde pas ça sur internet, ça va t'embrouiller, c'est horriblement compliqué dans les détails mais il n'est pas nécessaire de s'y connaître grandement puisque c'est automatique) va prendre les différents fichiers intermédiaires et en faire un exécutable. Cela est possible uniquement si il existe une et une seule fonction main() quelque part dans un des fichiers .c. Par convention (c'est standardisé quelque part) quand Windows/Linux lance un programme il va lancer la fonction main(). Autrement dit: On peut compiler du code .c sans main(), mais on n'obtiendra pas d'exécutable (par contre ça permet de vérifier la syntaxe du code). Si on veut un exécutable il faut forcément une fonction main(). Soit les étudiants dont tu parles n'exécutent pas leur code soit il ne donnent simplement pas leur code complèt. Car bien sûr on peut très bien mettre tout son programme dans une fonction xy() et la fonction main() ne fera rien d'autre qu'appeller cette fonction (et retourner 0 à la fin), dans ce cas le code de la fonction main() n'est pas très intéressant et certains ne le donneront donc pas. (Je dis pas que c'est une bonne méthode mais c'est possible). Ah, pourquoi tout ce bazar avec chaque fichier .c compilé séparément? Cela est très utile dans les gros projets. En cas de modification du code il ne faudra recompiler que les fichiers .c qui ont été modifiées, pour les autres on pourra réutiliser le fichier intermédiare correspondant pour l'étape suivante, à savoir produire un exécutable. Pour des projets de quelque lignes cela n'a aucune importance, par contre pour un projet avec 100.000 lignes le temps de compilation peut baisser énormément! Bon, j'espère que je ne t'ai pas embrouillé d'avantage qu'avant. edit: L'exemple de solution que tu donnes n'est pas génial, passer un int à une fonction qui prend un char peut créer des problèmes (il y a "moins de place" dans le char que dans le int). Je ne vois aucune raison de ne pas déclarer letter en char. Message édité par rat de combat le 24-05-2017 à 00:32:57 |
raiden5002 | Euuuuuuuh baaaah merci
--------------- http://forum.hardware.fr/hfr/Achat [...] 4112_1.htm |
rat de combat attention rongeur méchant! |
|
raiden5002 | D'accord merci beaucoup
--------------- http://forum.hardware.fr/hfr/Achat [...] 4112_1.htm |
Zilak I can't carry anymore ! | Pour t'aider tu as (openclassroom) https://openclassrooms.com/courses/ [...] ons-outils (une suite de cours gratuit) qui est pas mal quand on débute. Je pense que ça sera plus efficace que les vidéos youtube. Message édité par Zilak le 25-12-2017 à 21:14:14 |
KiwiPoilu | Je suis un peu a la bourre mais si y’a pas de main dans les exos des eleves de 42 c’est parce que tu doit juste rendre une fonction, pas un programme. |
Publicité | Posté le 22-01-2020 à 11:39:51 |
rufo Pas me confondre avec Lycos! |
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
tellyou |
|
KiwiPoilu |
|
Sujets relatifs | |
---|---|
[HTML/PHP/JS] Afficher x pages en alternances sur timer | Exercice entré sortie assembleur |
Afficher une grille dans GoogleEarth à partir d'un point | [Wordpress] Afficher article(s) sur Facebook |
Afficher plusieurs lignes sur une seule | OpenLayers3 : afficher Text |
afficher des images au fur et à mesure d'un appel ajax | Matlab : Comment afficher du texte (consigne) à l'écran |
Comment afficher une image de durée limitée sous MATLAB ? | Aide pour exercice c |
Plus de sujets relatifs à : Exercice de la piscine 42: afficher l'alphabet |