tgoop.com/Moallemekhoob/2498
Last Update:
#قانون 1.2 MISRA C - از افزونههای زبان C استفاده نکنیم!
○ دستهبندی: #پیشنهادی
○ اعمال برای: C90, C99, C11
یکی از نکات مهم در برنامهنویسی به زبان C، پرهیز از استفاده از افزونههای (Extensions) خاص کامپایلرهاست. چرا؟
برنامهای که به این افزونهها وابسته باشد، ممکن است به راحتی روی کامپایلرهای مختلف یا سیستمعاملهای گوناگون اجرا نشود (مشکل Portable بودن). استاندارد زبان C از کامپایلرها میخواهد که افزونههای خود را مستند کنند، اما این مستندات همیشه کامل نیستند و ممکن است رفتار افزونه در شرایط خاص را به طور دقیق شرح ندهند.
راه حل:
○ اگر مجبور به استفاده از افزونهای هستید، دلیل آن را در مستندات پروژه خود ذکر کنید.
○ نحوه اطمینان از استفاده صحیح افزونه (مثلاً بررسی کامپایلر و پیامهای خطا) را نیز مستند کنید.
نکته مهم: در سیستمهای #Embedded (نهفته)، استفاده از افزونهها گاهی ضروری است. اما دقت کنید که افزونه نباید رفتار برنامههای استاندارد C را تغییر دهد. برای مثال، اگر کامپایلری، ارزیابی کامل عملگرهای منطقی (مثل && و ||) را به عنوان یک افزونه پیادهسازی کند (در حالی که استاندارد C میگوید ارزیابی به محض مشخص شدن نتیجه متوقف شود)، این افزونه با استاندارد سازگار نیست، زیرا ممکن است باعث بروز اثر جانبی (Side Effect) های ناخواسته شود.
#برنامه_نویسی #استاندارد_MISRA
#Embedded
📍امبدلب به فارسی:
@mBedLabLearning
📍mBedLab in English:
@mBedLabLearningEN
📍mBedLab Türkçe'de
@mBedLabLearningTR
BY کانال آموزش الکترونیک معلم خوب
Share with your friend now:
tgoop.com/Moallemekhoob/2498