الأخوة الأعزاء
فى البداية شكرا جزيلا للأخوة اللى ردوا عليا فى الموضوع السابق
ورجعت بسرعة ومعايا سؤال تانى، المرة دى عن الـ 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) كيف إذن تكون هناك عملية جمع فى كل من المتغيرين رغم اختلاف الحجم.
آسف للإطالة وشكرا على الإفادة.