.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH _Generic 3 "17 مايو 2025" "صفحات دليل لينكس 6.18" .SH الاسم _Generic \- اختيار عام النوع .SH موجز .nf \fB_Generic(\fP\f[I]expression\fB, type1: \fP\f[I]e1\fB, \fP... /*\fB, default: \fP\f[I]e\fR */\fB);\fP .fi .SH الوصف \fB_Generic\fP() يُقيّم مسار الكود تحت محدد النوع المتوافق مع نوع \fIالتعبير\fP المتحكم، أو \fBمبدئي:\fP إذا لم يكن أي نوع متوافقًا. .P \fIالتعبير\fP لا يُقيّم. .P هذا مفيد بشكل خاص لكتابة وحدات ماكرو عامة النوع، التي تتصرف بشكل مختلف اعتمادًا على نوع الوسيط. .SH المعايير C11. .SH التاريخ C11. .SH أمثلة البرنامج التالي يوضح كيفية كتابة بديل للدالة القياسية \fBimaxabs\fP(3)، التي كونها دالة لا يمكنها حقًا توفير ما تعد به: الترقية بسلاسة إلى أوسع نوع متاح. .IP .\" SRC BEGIN (_Generic.c) .EX #include #include #include \& #define my_imaxabs _Generic(INTMAX_C(0), \[rs] long: labs, \[rs] long long: llabs \[rs] /* long long long: lllabs */ \[rs] ) \& int main(void) { off_t a; \& a = \-42; printf("imaxabs(%jd) == %jd\[rs]n", (intmax_t) a, my_imaxabs(a)); printf("&imaxabs == %p\[rs]n", &my_imaxabs); printf("&labs == %p\[rs]n", &labs); printf("&llabs == %p\[rs]n", &llabs); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .