الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Flag Variables

مغلق
بدأه haosman في 2 مارس 2006 · 1 رد · 1,935 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الأعزاء
فى البداية شكرا جزيلا للأخوة اللى ردوا عليا فى الموضوع السابق
ورجعت بسرعة ومعايا سؤال تانى، المرة دى عن الـ Flag Variable

اللى فهمتو ان من الممكن انك تغير فى بت معينة داخل متغير والمقارنة بينها وبين قيمة بت فى متغير آخر،
ياترى هل هذا الشرح البسيط يمثل الهدف من الـ Flag Variable ؟
دة السؤال الأول

وأثناء القراءة صادفت مثال بيتكلم عن نفس الموضوع، بس فى بعض الخطوات مش فاهمها خالص، أعتقد ان الـ سى شارب عملت نوع من الجمود على التخيل ومش قادر افكر الليونة اللى بتتعامل بيها لغة الـ C
 

const int CHANNEL_DOWN =    (1<<4);
char    flags = 0;  /* start all flags at 0 */

flags |= CHANNEL_DOWN; 

if ((flags & ERROR) != 0) 
    printf("Error flag is set\n");
else 
    printf("No error detected\n");

1: المتغير flag من نوع char كيف يساوى 0
2: كيف يتم كتابة flags |= CHANNEL_DOWN رغم اختلاف نوع المتغيرين.
3: المتغير CHANNEL_DOWN والمتغير flag مختلفين فى الحجم (int , char) كيف إذن تكون هناك عملية جمع فى كل من المتغيرين رغم اختلاف الحجم.


آسف للإطالة وشكرا على الإفادة.

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 26 يونيو 2014 في 21:43 — السبب: add some tags

#2

اخوي بالنسبة للمتغير flags يساوي صفر عادي في لغة C و ++C لانه يأخذ قيمة الآسكي اللي هي صفر

وبالنسبة لإختلاف الانواع ؟؟؟؟؟؟؟ ترى في لغة السي مافي قيود او ما يعرف بـــ Type checking

والسلام

هذا الموضوع مغلق.

مواضيع مشابهة