Bonjour, j'ai une questions peut-être conne pour certains mais y a-t-il ou non une différence de temps, pour la compilation et l'affichage de variables de type char et long.
En fait je voudrais savoir si la compilation et plus long avec une variable long ou avec une variable char !!
Non, la compilation n'a strictement (à par les roxxor optimisations bidons qu'on ne connait pas) rien à foutre des types de variable.
Pour l'execution, bah char va prendre moins de place en mémoire, mais ca ne change rien à la rapidité (en tout cas pour un programme qui utilise peu de mémoire comme ceux qu'on fait, pour le reste je ne saurais m'avancer sur les broubroutages de cache L4 les jours de plein lune ).
peut être qu'une variable char est un peu plus "longue" à compiler et à afficher puisque le programme doit trouver la valeur numérique qui correspond au caractère concerné mais bon à cette échelle c'est vraiment minime, tu ne pourras jamais sentir cette différence vu que c'est quasi instantané!!
peut être qu'une variable char est un peu plus "longue" à compiler et à afficher puisque le programme doit trouver la valeur numérique qui correspond au caractère concerné mais bon à cette échelle c'est vraiment minime, tu ne pourras jamais sentir cette différence vu que c'est quasi instantané!!
Hum...
Déja, ca change quoi à la compilation ?
Ensuite, une variable dans le PC ca sera par exemple :
Citation
11000001
Pourquoi ca serait plus facile/court/rapide pour lui d'afficher "97" que 'a' ?
Ces considérations sur les optimisations de vitesse sont totalement absurdes. Vous allez voir que les vrais problèmes de vitesse surviennent dans la façon dont vous architecturez un code complexe. Pas sur les types de variables, ça c'est complètement ridicule que de songer un seul instant qu'un char sera plus "rapide" qu'un long (ça n'a aucun sens d'ailleurs techniquement).
Pourquoi ca serait plus facile/court/rapide pour lui d'afficher "97" que 'a' ?
Si j'ai bien compris le cours de C, chaque lettre a un code numerique correspondant, donc lors de l'execution du programme l'ordinateur doit faire une opération de plus afin de "convertir" un nombre en lettre.
par exemple:
affichage d'un nombre (long) :
appel de la variable -> affichage de la valeur de la variable
affichage d'un caractère (char) :
appel de la variable -> récuperation de la valeur de la variable -> affichage de la lettre correspondant à la valeur de la variable
ici on voit qu'il y a une opération de plus.Comme je l'ai dis plus haut la différence de temps est infime.Je me trompe peut etre, je ne suis qu'un débutant
c'est juste une p'tite théorie! Et pis en fait on s'en fout un peu de savoir si ca prend qques centieme de seconde en plus ou non...
Je comprends pas pourquoi il y a tant de sujets où on s'inquiètes de quelques nanosecondes de plus ou en moins...
Parce que dans cette optique là, rester près de votre ordinateur ralentit le temps et ralonge votre vie, vous savez...
Pourquoi ca serait plus facile/court/rapide pour lui d'afficher "97" que 'a' ?
Si j'ai bien compris le cours de C, chaque lettre a un code numerique correspondant, donc lors de l'execution du programme l'ordinateur doit faire une opération de plus afin de "convertir" un nombre en lettre.
par exemple:
affichage d'un nombre (long) :
appel de la variable -> affichage de la valeur de la variable
affichage d'un caractère (char) :
appel de la variable -> récuperation de la valeur de la variable -> affichage de la lettre correspondant à la valeur de la variable
ici on voit qu'il y a une opération de plus.Comme je l'ai dis plus haut la différence de temps est infime.Je me trompe peut etre, je ne suis qu'un débutant
c'est juste une p'tite théorie! Et pis en fait on s'en fout un peu de savoir si ca prend qques centieme de seconde en plus ou non...
Non, car le compilateur ne donne pas des lignes de code au PC, il donne des lignes de 1 et de 0...
Vous délirez complètement là, désolé de devoir vous le dire mais vous êtes dans un complet délire. C'est pas des centièmes de secondes ni des nanosecondes, c'est 0 secondes. La conversion est faite par le compilateur.
Si vous ne savez pas, évitez de sortir des bêtises que vous avez imaginé durant votre sommeil :/
de toute facon, l'ordinateur quand il affiche "97", bah pour lui c'est deux lettres "9" et "7", il doit bien les convertir puisque lui il a juste un nombre binaire stocké dans sa mémoire.
Donc c'est faux de penser que passer de [0110001] à "97" est plus rapide que de [01100001] à "a".
par contre je ne comprend pas très bien : le compilateur crée un executable pleins de 0 et de 1 mais il y a bien un moment ou les 0 et 1 sont transformé en valeurs lors de l'execution du programme non??
je suis un peu perdu la
Question : Rapidité des types de variables
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)
If you'd like to join us, read "How do we work at OpenClassrooms"! :)