السلام عليكم ورحمة الله وبركاته
أرجوا أفادتي في storage classes
وظائف كل من
extern, auto, register, static
مع مثال بسيط ..
السلام عليكم ورحمة الله وبركاته
أرجوا أفادتي في storage classes
وظائف كل من
extern, auto, register, static
مع مثال بسيط ..
أخوي بالنسبة لــ auto ما ادري أيش هي بالظبط بس أتذكر إن الدكتور
قال لنا إنها قديمة وما عاد تستخدم .
أما static تستخدم غالباً في الدوال و هي عندما تستخدم الدالة مره
تكون بها القيم و بمجرد خورجك من الدالة تمسح القيم من الذاكرة
ولكن بالامر static تبقى القيم محفوظه في الذاكرة .
أو كما عرفها الدكتور عندنا:
static تعني عند إعطاء قيمة للدالة و تنفيذ هذه الدالة فإن المتغير
يحتفظ بالقيمة عند الإنتهاء من الدالة و عند الرجوع للدالة مرة أخرى
يجد المستخدم إخر قيمة للدالة .
مثال:
#include< stdio.h >
void total() ;
main()
{
total() ;
total() ;
total() ;
}
void total()
{
static int x = 1 ;
int y = 1 ;
x++ ;
y++ ;
printf("x = %d, y = %dn",x,y);
}
لاحظ الفرق بين الx وبين ال y :)
أزل كلمة static ولاحظ الفرق ;)
وبالنسبة للــ extern توني أشوف في المذكرة قايل أنه بناخذها في
151 CSC بس للأسف ما أخذناها . :'(
بالنسبة للــ register موضوع طويل خاص بالمعالجات يقوم بالعديد من
الامور مثل تغيير حجم المؤشر و وإخفائه و ما إلى ذلك ...
أنا حقيقة لم أعمل عليها و لكني قرأت عنها في أحد الكتب .
مع تحياتي ,,,
هذا الموضوع مغلق.