Scroll to navigation

_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.

ISTORIC

C11.

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 făcută 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.

3 mai 2023 Pagini de manual de Linux 6.05.01