Fonctions "de base" C

phety Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
phety Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Salut,

j'ai une petite question concernant les fonctions du langage(je ne sais pas si le terme est correct ?).

Prenons printf() pour exemple, j'ai cherché après le code source de cette fonction pour essayer de comprendre ce qui se passait derrière tout ça, mais j'ai plus l'impression que cette fonction relève de la magie qu'autre chose :s j'ai bien saisi la partie ou on différencie les paramètres mais je ne vois rien dans le code qui envoie les caractères à l'écran.

Après réflexion je me suis dit que le programme devait se contenter d'envoyer ce qu'il veut afficher à l'OS qui se débrouille tout seul après, mais ça voudrait dire que printf()(et toutes les autres fonction du langages) devrait être implémenter sur tous les OS ?

J'aimerais donc quelques précisions sur ce qui se passe réellement à la compilation entre le compilateur et l'OS, si le programme se contente de déléguer l'affichage lors de l'exécution etc...
Si quelqu'un a une réponse ou une lecture plus ou moins complète sur le sujet je suis preneur :)

Merci.

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
printf utilise vprintf qui utilise fflush... Je te laisse décortiquer la suite ;)
0
phety Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse.

Mais j'aurais peut être du m'abstenir ou garder cette question pour plus tard :p je suis pas encore tout a fait a l'aise avec le C et j'ai deja du mal avec la déclaration de vprintf, on à le droit de déclarer des variable avec le nom d'une fonction ?
Les seule infos que je trouve la dessus concernent le C++
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Qu'est-ce qui te pose problème avec vprintf ? Peut-être est-ce ceci :

void func(c)
   int c;
{}

void func(int c)
{}

Ces deux codes sont semblables, mais le premier est du vieux C qui n'est pas compatible avec le C++ donc il vaut mieux utiliser le deuxième, mais vu que printf c'est très vieux forcément si tu regardes le code il y a des notations qui doivent te sembler étrange...
0
phety Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Ok c'est plus clair, je vais essayer de déchiffrer fflush.c et je reviens avec d'autre question si je m'en sors pas :)
Merci encore.
0