Pourquoi C ne simplifie pas les types de retour de tableau
Alors que les langages de programmation comme Java autorisent des types de retour de tableau simples, C nécessite une approche plus complexe . Ceci n'est pas arbitraire mais découle de décisions fondamentales de conception du langage.
Gestion de la mémoire et passage par valeur par rapport au passage par référence
C fait la distinction entre les passages- par valeur et passage par référence. Les noms de tableaux sont essentiellement des pointeurs. Passer un tableau par valeur est évalué à l'adresse mémoire de son premier élément, qui est perdue au-delà de la portée de la fonction.
Contrairement à Java
Java utilise ostensiblement le pass-by -value, mais il utilise des valeurs « intelligentes » qui sont souvent des adresses mémoire. Les types de retour de tableau pratiques de Java sont obtenus grâce à la gestion automatique de la mémoire et à l'encapsulation du pointeur, ce qui entraîne une efficacité réduite.
Les compromis de C
C a été créé avec des performances telles que une priorité, sacrifiant la gestion automatique de la mémoire au profit de la vitesse. Le renvoi d'un tableau C nécessite une allocation de mémoire explicite et une gestion du pointeur, reflétant l'approche de C.
Exception de classe de modèle
Les classes de modèles peuvent renvoyer des tableaux car elles utilisent des classes. Cependant, le retour d'un tableau C nécessite toujours une gestion manuelle de la mémoire.
Contexte historique
Le créateur de C, Bjarne Stroustrup, visait à préserver les performances de C tout en incorporant les fonctionnalités de POO de Simulation. La décision de limiter la gestion automatique de la mémoire a été prise pour des raisons d'efficacité.
Par conséquent, même si C prend en charge les types de retour de tableau, il donne la priorité à la gestion de la mémoire et à la vitesse plutôt qu'à la commodité, contrairement à l'approche plus simplifiée de Java.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3