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

[ تمت الإجابة ]طلب شرح الـ register

بدأه mezo_zezo في 3 أبريل 2013 · 2 رد · 775 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ممكن حد يشرحلي عن الـ register و شو بتعمل هاي 

#2

register تطلب من المصرف أن يحاول أن يضع المتغير الذي تفكر في استخدامه بكثرة في مسجّل معالج بدلاً من الذاكرة لأن القراءة والكتابة لمسجلات المعالج أسرع مقارنة بالذاكرة. مثلاً هنا:

#include <stdio.h>

int main(int argc, char **argv)
{
    int i;

    for(i = 0 ; i < 20 ; i++) {
        printf("%d\n", i);
    }
    
    return 0;
}

سيستخدم البرنامج المتغير i بكثرة، لذا كان من الأفضل طلب وضعها في مسجل لتصبح:

...    register int i;...

طبعاً هناك بعض الإشروط مثلاً لن يمكنك الحصول على عنوان i (لأنها لم تعد في الذاكرة).

 

register وجدت في وقت كانت فيه المصرفات ضعيفة في تحسين البرنامج، لذا ستجدها غالباً في البرامج أو الأجزاء القديمة منها. لاتستخدمها الآن فقدرة المصرفات تحسنت بشكل كبير، دع هذه المسألة للمصرف ولاتستخدمها.

#3

شكرآ لك اخي العزيز 

 

ممكن تعطيني مجموعة من سلبياته و ايجابياته

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