Provided by: manpages-de-dev_4.27.0-1_all bug

_Generic(3)                             Handbuch zu Bibliotheksfunktionen                            _Generic(3)

BEZEICHNUNG

       _Generic - Typ-generische Auswahl

ÜBERSICHT

       _Generic(Ausdruck, type1: e1, … /*, default: e */);

BESCHREIBUNG

       _Generic()  wertet  den  Codepfad  unter  der  Typauswahl  aus,  der mit dem Typ des steuernden Ausdrucks
       kompatibel ist oder mit default:, falls kein Typ kompatibel ist.

       Ausdruck wird nicht ausgewertet.

       Dies ist insbesondere zum Schreiben von Typ-generischen Makros nützlich, die sich abhängig  vom  Typ  des
       Arguments verschieden verhalten werden.

STANDARDS

       C11.

GESCHICHTE

       C11.

BEISPIELE

       Das  folgende  Programm  zeigt,  wie ein Ersatz für die Standardfunktion imaxabs(3) geschrieben wird, die
       eine Funktion ist, die nicht wirklich das leisten kann, was sie verspricht: nahtlose  Aktualisierung  auf
       den weitesten verfügbaren Typ.

              #include <stdint.h>
              #include <stdio.h>
              #include <stdlib.h>

              #define my_imaxabs  _Generic(INTMAX_C(0),  \
                  long:           labs,                  \
                  long long:      llabs                  \
              /*  long long long: lllabs */              \
              )

              int
              main(void)
              {
                  off_t  a;

                  a = -42;
                  printf("imaxabs(%jd) == %jd\", (intmax_t) a, my_imaxabs(a));
                  printf("&imaxabs == %p\", &my_imaxabs);
                  printf("&labs    == %p\", &labs);
                  printf("&llabs   == %p\", &llabs);

                  exit(EXIT_SUCCESS);
              }

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte  eine  E-Mail  an  die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                             15. Juni 2024                                      _Generic(3)