English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدليل، ستتعلم من خلال الأمثلة كيفية استخدام التعداد في برمجة لغة C.
في برمجة لغة C، النوع التعداد (يُسمى أيضًا enum) هو نوع بيانات مكون من قيم ثابتة صغيرة. لتحديد التعداد، سيتم استخدام مفتاح enum.
enum flag {const1, const2, ..., constN};
بالتأكيد، const1 هو 0، const2 هو 1، وهكذا. يمكنك تغيير قيمة التعداد المبدئية أثناء التعبير عن العنصر (إذا لزم الأمر).
// تغيير قيمة التعداد المبدئية enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3, };
عند تعريف نوع التعداد، يتم إنشاء مخطط المتغير. سأشرح الآن كيفية إنشاء متغير نوع التعداد.
enum boolean {false, true}; enum boolean check; // تعريف متغير التعداد
في هذا السياق، سيتم إنشاء متغير النوع enum boolean check.
يمكنك أيضًا التعبير عن متغير التعداد هكذا.
enum boolean {false, true} check;
في هذا، قيمة false تساوي 0، وقيمة true تساوي 1.
#include <stdio.h> enum week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}; int main() { // إنشاء متغير today من نوع القائمة week enum week today; today = Wednesday; printf("يوم %d", today+1); return 0; }
نتيجة الإخراج
يوم 4
يمكن لمتغير القائمة أن يأخذ قيمة واحدة فقط. هذا مثال على ذلك،
#include <stdio.h> enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3 }; card; int main() { card = club; printf("حجم متغير القائمة = %d بايت", sizeof(card)); return 0; }
نتيجة الإخراج
حجم متغير القائمة = 4 بايت
هنا، نحصل على 4 لأن حجم int هو 4 بايت.
لنأخذ مثالاً
enum designFlags { ITALICS = 1, BOLD = 2, UNDERLINE = 4 }; button;
افترض أنك تقوم بتصميم أزرار تطبيق Windows. يمكنك تعيين العلامات ITALICS، BOLD وUNDERLINE للتعامل مع النص.
في الكود الوهمي أعلاه، جميع معاملات التكامل هي أرقام قوى من 2 لسبب.
// باستخدام ثنائي ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
بما أن معاملات التكامل هي أرقام قوى من 2، يمكن دمج أكثر من علامة في وقت واحد دون الحاجة إلىمربعات النص OR |مربعات النص للعمل على أكثر من علامة في وقت واحد. على سبيل المثال،
#include <stdio.h> enum designFlags { BOLD = 1, ITALICS = 2, UNDERLINE = 4 }; int main() { int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; }
نتيجة الإخراج
5
عندما يكون الناتج 5، تعرف دائمًا أنك تستخدم الخط الكبير والخط تحت.
بالإضافة إلى ذلك، يمكنك إضافة علامات حسب الحاجة.
if (myDesign & ITALICS) { //نص مائل }
في هذا المكان، قمنا بإضافة النص المائل. لاحظ أن يتم كتابة الكود المائل داخل جملة if.
لا تحتاج إلى استخدام الـ enum لإنجاز كل مهمة تقريبًا في برمجة C. ولكن، قد تكون مفيدة جدًا في بعض الحالات.