_Generic(3) | Library Functions Manual | _Generic(3) |
NUME¶
_Generic - selecție de tip-generic
SINOPSIS¶
_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.
2 mai 2024 | Pagini de manual Linux (nepublicate) |