L'initialisation de variables de fonction locales prend le temps de traitement? par exemple:L'initialisation de variables de fonction locales prend le temps de traitement?
void foo (void) {
char *str = "hello";
int num = 3;
}
Ou, comme les variables globales, leur valeur est-elle déjà affectée dans la section en lecture seule du binaire? En d'autres termes: Est-ce que cela prend du temps d'invoquer une fonction qui a beaucoup de variables locales, en comparaison avec une fonction qui n'en a pas?
Edit: Je vois beaucoup de gens ici sont en colère parce qu'il semble que je suis en train d'optimiser mon code d'une manière très pointilleux/mauvais, qui ne devrait pas être pris en considération. Je suis conscient de cela. J'ai posé cette question seulement pour comprendre comment les choses se comportent et fonctionnent, pas pour des raisons d'optimisation. Je vous remercie. BTW, peut-être mes codes se trouve sur un MCU de faible puissance? Envisager d'autres options, PC n'est pas le seul.
L'affectation d'une variable nécessite probablement entre 1 et 4 instructions. Sur un processeur 1 Ghz, cela ne va durer que 1-4 nanosecondes. – Pace
Combien de variables locales allez-vous définir? 3 millions d'entre eux? Vous manquerez d'espace dans la pile avant de constater un retard considérable. Ne vous concentrez pas sur la micro-optimisation. – kennytm
Je me fâche chaque fois que je vois des choses comme ça. Évidemment, cela prend du temps. Vous devez affecter une variable et définir tous les caractères dans une chaîne. il n'y a rien de quantitatif dans cette question. Apprenez à utiliser un profileur, c'est la seule façon de voir si vous devez vous préoccuper de ce genre de frais généraux et cela dépend de tout le programme spécifique. Que cherchiez-vous dans une réponse exactement? –