unspezifiziertes Verhalten in C++ (unspezifiziertes Verhalten in C++), Lektion, Seite 724243
https://www.purl.org/stefan_ram/pub/unspezifiziert_c++ (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs

Unspezifiziertes Verhalten in C++ 

Wie implementationsdefiniertes Verhalten, so hängt auch unspezifiziertes Verhalten von der Implementation ab, diese muß aber unspezifiziertes Verhalten nicht dokumentieren.

Hierbei handelt es sich um interne Entscheidungen einer Implementation, die einem Programmierer eigentlich egal sein sollten. Beispielsweise um die Frage ob für zwei in einem Programm vorkommende Zeichenfolgenliterale mit dem gleichen Text (wie »"abc"« und »"abc"«) jeweils zwei verschiedene Zeichenfolgen abgespeichert werden, oder in welcher Reihenfolge die Argumente eines Aufrufs oder Operanden eines Operators ausgewertet werden.

Wird »abc« bei der Ausführung des folgenden Programms doppelt im Speicher gehalten?

main.cpp

#include <cmath> // ::std::atan, ::std::pow
#include <iostream> // ::std::cout
#include <ostream> // <<
#include <string> // ""s

using namespace ::std::literals;

int main()
{ ::std::cout << ""s + "abc" + "abc" << "\n"s; }

Protokoll
abcabc

Welche der beiden Division wird bei der Ausführung des folgenden Programms zuerst ausgeführt?

main.cpp

#include <iostream> // ::std::cout
#include <ostream> // <<
#include <string> // ""s

using namespace ::std::literals;

int main()
{ ::std::cout << 4/2 + 8/2 << "\n"s; }

Protokoll
6

Welche der beiden Division wird bei der Ausführung des folgenden Programms zuerst ausgeführt?

main.cpp

#include <cmath> // ::std::pow
#include <iostream> // ::std::cout
#include <ostream> // <<
#include <string> // ""s

using namespace ::std::literals;

int main()
{ ::std::cout << ::std::pow( 4/2, 8/2 )<< "\n"s; }

Protokoll
16

Über all diese Frage sollte man sich keine Gedanken machen, und das beobachtbare Verhalten eines Programmes sollte nicht von ihren Antworten abhängen. Die Implementation entscheidet diese Dinge, ohne daß der Programmierer sich mit ihnen befassen muß.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724243 stefan_ram:724243 unspezifiziertes Verhalten in C++ Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724243, slrprddef724243, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/unspezifiziert_c++