Fonctions "de base" C

Fermé
phety Messages postés 3 Date d'inscription jeudi 28 avril 2011 Statut Membre Dernière intervention 28 avril 2011 - 28 avril 2011 à 18:18
phety Messages postés 3 Date d'inscription jeudi 28 avril 2011 Statut Membre Dernière intervention 28 avril 2011 - 28 avril 2011 à 21:26
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
28 avril 2011 à 18:55
printf utilise vprintf qui utilise fflush... Je te laisse décortiquer la suite ;)
0
phety Messages postés 3 Date d'inscription jeudi 28 avril 2011 Statut Membre Dernière intervention 28 avril 2011
28 avril 2011 à 20:14
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
28 avril 2011 à 20:38
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 jeudi 28 avril 2011 Statut Membre Dernière intervention 28 avril 2011
28 avril 2011 à 21:26
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