سؤال

لقد وجدت للتو تعريف الوظيفة هذا في بعض التعليمات البرمجية المدمجة:

float round_float_to_4(static float inputval);

أنا على دراية بالاستخدامات الأخرى ل ثابتة (المتغيرات العالمية والوظائف والمتغيرات المحلية) ، ولكن هذه هي المرة الأولى التي أراها محددة لمعلمة الوظيفة. أفترض أن هذا المجمع يجبر على استخدام موقع الذاكرة الثابت inputval بدلا من المكدس؟

هل كانت مفيدة؟

المحلول

هذا غير قياسي. أعتقد أن نفس الشيء مثلك ، وأنا لست مندهشًا من هذا التمديد في المترجمين الذين لديهم هدف مضمن.

نصائح أخرى

هذا غير صالح. المكان الوحيد الصحيح حيث static يمكن استخدام

float round_float_to_4(float inputval[static 4]);

قول ذلك inputval سوف تشير ، في جميع المكالمات إلى هذه الوظيفة ، إلى توفير الذاكرة على الأقل 4 العوامات (هذه إضافة C99 ، لا تظهر في C89).

وفقًا لمعيار C ،

المحدد الوحيد من فئة التخزين الذي يجب أن يحدث في إعلان المعلمة هو التسجيل.

تحتوي العديد من الأجهزة المدمجة على مكدس محدود بشكل خطير ، فإن هذه الميزة ستكون ذات فائدة كبيرة في تقليل فرص التدفق ، مع الاستمرار في منحك الفرصة لرمز المشارك.

لا تملك الرقائق الأصغر أي فرصة لوضع المتغيرات على المكدس ، لذلك جميع المعلمات هي مواقع ذاكرة ضمنية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top