Provided by: manpages-ro-dev_4.21.0-2_all bug

_Generic(3)                                 Library Functions Manual                                 _Generic(3)

NUME

       _Generic - selecție de tip-generic

REZUMAT

       _Generic(expresia, type1: e1, ... /*, default: e */);

DESCRIERE

       _Generic()  evaluează  ruta de cod din cadrul selectorului de tip care este compatibil cu tipul expresiei
       expresia de control sau default: (expresia implicită) dacă nu există un tip compatibil.

       expresia nu este evaluată.

       Acest lucru este util în special pentru a scrie macrocomenzi  generice  de  tip,  care  se  vor  comporta
       diferit în funcție de tipul argumentului.

STANDARDE

       C11 și ulterioare.

EXEMPLE

       Următorul program demonstrează cum se poate scrie un înlocuitor pentru funcția standard imaxabs(3), care,
       fiind  o  funcție, nu poate oferi cu adevărat ceea ce promite: trecerea fără probleme la cel mai larg tip
       disponibil.

              #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\n", (intmax_t) a, my_imaxabs(a));
                  printf("&imaxabs == %p\n", &my_imaxabs);
                  printf("&labs    == %p\n", &labs);
                  printf("&llabs   == %p\n", &llabs);

                  exit(EXIT_SUCCESS);
              }

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   creată   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   Nicio
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.03                  12 februarie 2023                                    _Generic(3)