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

أسئلة حول sizeof

بدأه khaled_prg في 6 سبتمبر 2010 · 6 رد · 819 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

رأيت بعض الإخوة يقول أن sizeof ليست دالة و إنما هي مؤثر !, لذلك كتبتُ هذا الموضوع لأفهم القضية أكثر و أسئلتي هي:

1-ما دليلكم أن sizeof مؤثر !؟

2-إذا كانت sizeof مؤثر !, كيف نفرق بين المؤثر و الدالة !؟

حسب ما أعرف .. الدالة تأخذ معامل (على الأقل) و تعيد قيمة (أو مؤشر أو كائن أو هيكل أو ...), و هذا تحققه sizeof

3-إذا كان عندنا كود برنامج, سمعتُ البعض يقول أنه بإمكاننا معرفة الحجم الكامل للبرنامج عن طريق sizeof, كيف ذلك !؟

أرجو أن لا أكون قد أثقلت عليكم بأسئلتي هذه.

تحياتي.

تم تعديل هذه المشاركة بواسطة khaled_prg في 6 سبتمبر 2010 في 19:00

1
#2
اقتباس
1-ما دليلكم أن sizeof مؤثر !؟

2-إذا كانت sizeof مؤثر !, كيف نفرق بين المؤثر و الدالة !؟

ما دليلك ان sizeof هي function ؟ smile.gif

الدالة هي ما يكتبه المستخدم ويمكن كتابة declaration لها ، بينما الـoperator يتم عمل implement له داخليا بواسطة المترجم (بعيدا عن الـoverload الآن) .

اقتباس
حسب ما أعرف .. الدالة تأخذ معامل (على الأقل) و تعيد قيمة (أو مؤشر أو كائن أو هيكل أو ...), و هذا تحققه sizeof

ليس من الضروري ان تأخذ الدالة معامل على الأقل ، وليس لأن X تشبه Y اذا X == Y .

--------------

اقرأ الـISO اذا كان لديك لبس في هذه المسائل wink.gif

3

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3

عليكم السلام

بخصوص sizeof مؤثر او معامل يعني Operator والدليل على هيك ببساطة هي مصادر موثوقة...

متل الموقع الرسمي لـ Bjarne Stroustrup وهو العالم المؤلف للغة سي++! بيسميها Operator تماماً متل . و ?! و ::

" Most operators can be overloaded by a programmer. The exceptions are

. (dot) :: ?: sizeof

"

من الموقع الرسمي الخاص به هنا

السؤال 2:

sizeof متل المؤثر new في لغة ++C ومن الكلمات المحجوزين...

ومش فيه اي دالة في لغة ++C يعني في التراكيب النحوية الأساسية للغة...إلا عن طريق المكتبات والهيدرز الخارجية والمكتبة العامة أو عن طريق كائن Object...متل cin.get() على سبيل المسال!! أو الدوال اللي بنعملن نحنا!!

آسفة بخصوص السؤال التالت...

ربما تجد إجابة من الأخوة الكرام...

موفق يارب

2

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#5

عفواً بارك الله بك...

أجابة السؤال الآخير اعتقد انها ليست فعلية او موجودة والله أعلم...

نستطيع معرفة حجم بيانات داخل البرنامج أو معرفة حجم تراكيب معينة ومعرفة حجم مصفوفة باستعمال sizeof...

بخصوص معرفة حجم البرنامج بالكامل لم اجد مثالاً واقعياً لذلك من خلال البحث ولا تلميحاً من خلال الإطلاع...

والله أعلم

انا ناطرة اجابة مغايرة لإجابتي تثبت العكس...

موفق يارب

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#6

لا يمكن لأن حجم البرنامج النهائي يمكن ان يدخل فيه مكتبات اخرى بالاضافة الى هيكلة الملف الناتج نفسه ليعمل على Environment محددة وهو شيء خارج عن مهام الـCompiler .

2

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

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