.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2022 Alejandro Colomar .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH _Generic 3 "3 mai 2023" "Pagini de manual de Linux 6.05.01" .SH NUME _Generic \- selecție de tip\-generic .SH REZUMAT .nf \fB_Generic(\fP\fIexpresia\fP\fB, type1: \fPe1\fB, \fP... /*\fB, default: \fPe */\fB);\fP .fi .SH DESCRIERE \fB_Generic\fP() evaluează ruta de cod din cadrul selectorului de tip care este compatibil cu tipul expresiei \fIexpresia\fP de control sau \fBdefault:\fP (expresia implicită) dacă nu există un tip compatibil. .PP \fIexpresia\fP nu este evaluată. .PP Acest lucru este util în special pentru a scrie macrocomenzi generice de tip, care se vor comporta diferit în funcție de tipul argumentului. .SH STANDARDE C11. .SH ISTORIC C11. .SH EXEMPLE Următorul program demonstrează cum se poate scrie un înlocuitor pentru funcția standard \fBimaxabs\fP(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. .IP .\" SRC BEGIN (_Generic.c) .EX #include #include #include \& #define my_imaxabs _Generic(INTMAX_C(0), \e long: labs, \e long long: llabs \e /* long long long: lllabs */ \e ) \& int main(void) { off_t a; \& a = \-42; printf("imaxabs(%jd) == %jd\en", (intmax_t) a, my_imaxabs(a)); printf("&imaxabs == %p\en", &my_imaxabs); printf("&labs == %p\en", &labs); printf("&llabs == %p\en", &llabs); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .