Das Fehlen der Integer-Potenzfunktion in den Standardbibliotheken von C hat warf bei Programmierern Fragen auf. Trotz ihrer scheinbaren Einfachheit fehlt diese Funktion auffällig in den bereitgestellten mathematischen Toolset.
Vor C 11 gab es keine Ganzzahlüberladungen in der pow-Funktion. Dieses Versäumnis ist wahrscheinlich auf den historischen Kontext von C und der Entwicklung von C zurückzuführen.
In den frühen Tagen von C waren Gleitkommaberechnungen in der Systemprogrammierung weniger verbreitet. Darüber hinaus bestand das Ziel von ANSI C eher in der Kodifizierung bestehender Praktiken als in der Innovation. Daher hatte das Hinzufügen eines integrierten Potenzoperators keine Priorität.
C erbte ursprünglich viele Attribute von C. Es wurde in erster Linie als Erweiterung von C mit objektorientierten Funktionen und nicht als vollständige Überarbeitung seines Kerns konzipiert Funktionalität.
Die C-Standardsetzungsgremien arbeiten mit spezifischen Richtlinien. Diese Richtlinien priorisieren die Einfachheit und Konsistenz der Sprache und begrenzen das Hinzufügen redundanter oder überlappender Funktionen.
Darüber hinaus müssen Normungsausschüsse die Opportunitätskosten der Einführung neuer Funktionen berücksichtigen. Das Hinzufügen einer scheinbar trivialen Funktion kann andere, wertvollere Verbesserungen von der Aufnahme in den Standard verdrängen.
In C 11 wurde eine wesentliche Änderung vorgenommen: das Hinzufügen von Überladungen die ganzzahlige Argumente in der pow-Funktion zulassen. Diese Änderung steht im Einklang mit dem breiteren Trend, mehr mathematische Funktionalität in die Standardbibliothek zu integrieren.
Bei Gleitkommaargumenten behandelt die Funktion Überlauf und Unterlauf auf konsistente und explizite Weise. Bei ganzzahligen Argumenten werden sie jedoch effektiv zu Doubles hochgestuft, um die Operation auszuführen.
Das Fehlen der Funktion pow(int base, int exponent) in früheren Versionen von C wurde beeinflusst aus historischen Gründen und normsetzenden Zwängen. Seine Einführung in C 11 spiegelt die sich entwickelnden Bedürfnisse von Programmierern und die kontinuierliche Verbesserung der Fähigkeiten der Standardbibliothek wider.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3