Advertisement

Vorgegebene Unterprogramme und Makros

  • Günther Lamprecht

Zusammenfassung

In der Programmiersprache C sind die Sprachelemente wie Datentypen und Operationen festgelegt worden, nicht jedoch die Unterprogramme, die für bestimmte Aufgaben in gewissen Systemdateien bereitgestellt werden. Es kann deshalb sein, daß bei einzelnen Herstellern Abweichungen bei den unten angegebenen Unterprogrammen vorliegen. Als Beispiel sei hierzu die Funktion abs genannt:
  • Einige Hersteller definieren sie als
    1. a)

      int-Funktion mit einem int-Parameter.

       
  • Andere stellen stattdessen das Makro
    1. b)

      #define abs(x) ((x) >= 0 ? (x) : -(x))

       
  • zur Verfügung. Damit ergeben sich folgende Unterschiede:
    • Ruft man im Fall a) die Funktion mit einem Parameter vom Typ float oder double auf, erhält man einen falschen Funktionswert — ohne Fehlermeldung —.

    • Ruft man im Fall b) das Makro mit einem Parameter auf, der eine Nebenwirkung besitzt (z.B. abs (n++)), so wird die Nebenwirkung wegen der textmäßigen Ersetzung des Makros zweimal veranlaßt.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig 1986

Authors and Affiliations

  • Günther Lamprecht

There are no affiliations available

Personalised recommendations