Maison > Article > développement back-end > Est-ce que pow(x, 2) ou x * x est plus efficace pour la mise au carré en C et C ?
Qu'est-ce qui est le plus efficace ? Utiliser pow pour mettre au carré ou simplement le multiplier par lui-même ?
En C, utiliser x * x pour la mise au carré est généralement plus efficace que d'utiliser pow(x, 2) car pow implique un appel de fonction avec une surcharge supplémentaire .
Cependant, en C , les deux approches peuvent être efficaces grâce aux optimisations du compilateur :
pow(x, 3) vs x x x
En C , pow(x, 3) et x * x * x sont généralement équivalents en termes d'efficacité. La fonction std::pow de C prend une forme plus générique (pow(double, double)), qui gère les exposants comme des nombres à virgule flottante.
Considérations spécifiques :
Voici les benchmarks mis à jour pour GCC et Clang, testant l'efficacité pour différents exposants :
Exponent | GCC (O3) | Clang (O3) |
---|---|---|
2 | x * x slightly faster | Similar |
3 | x * x * x faster | Similar |
4 and above | x * x * x * ... faster | Similar |
Remarques supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!