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