اخبار جدید یوبرد در اینستاگرام

آرایه با کلاس حافظۀ خارجی (در زمانی که آرایه با extern اعلان شود.)، در استاندارد MISRA C الزاماتی دارد. متن الزام استاندارد MISRA C در این مورد بصورت زیر است:

When an array is declared with external linkage, its size shall be stated explicitly or defined implicitly by initialisation.

این یک قانون الزامی به شمارۀ 8.12 از استاندارد MISRA C بود که ترجمۀ آن بصورت زیر است:

در زمانی که یک آرایه با کلاس حافظۀ extern اعلان می‌شود، تعداد اعضای آن باید به صورت صریح (قرار دادن عدد در براکت) یا به صورت ضمنی (مقداردهی اولیۀ اعضای آن) مشخص شود.

اگرچه می‌توان آرایه‌ها را با کلاس ذخیره سازی extern، بدون مشخص کردن اندازۀ آنها اعلان کرد، اما در زمانی که امکان تعیین اندازۀ آرایه‌ها وجود دارد، انجام این کار ایمن‌تر است. موارد زیر به عنوان مثال ارائه شده اند. که مورد اول و سوم پذیرفتنی ولی مورد دوم مطابق این قانون، پذیرفتنی نیست:

int array1[ 10 ]; /* Compliant */
extern int array2[ ]; /* Not compliant */
int array2[ ] = { 0, 10, 15 }; /* Compliant */

 

بسیاری از ما به این موضوع توجه نمی کنیم. حتی کدهای نوشته شده در بسیاری از شرکتها را هم مشاهده کنید، می بینید که چنین مواردی رعایت نشده است. عدم رعایت یک مجموعۀ قانون که همگی مهم هستند و عدم رعایت آنها باعث ایجاد رفتارهای تعریف نشده می شود، باعث ایجاد محصولی ناایمن و غیر قابل اعتماد می شود. دانش نسبت به استاندارد MISRA C برای تمام توسعه دهندگان به زبان برنامه نویسی C بخصوص برای سیستم های حیاتی ضروری است. باتوجه به اهمیت این استاندارد، ما در آموزش MISRA C یوبرد، تمامی الزامات را تشریح کنیم و این آموزش اکنون از مهمترین آموزشهای یوبرد است.

لینک های مرتبط:

عملگرهای رابطه‌ای برای اشاره‌گرها در استاندارد MISRA C++

آموزش MISRA C یوبرد

آموزش MISRA C++ یوبرد


رضا اسدی

رضا اسدی

مدیر یوبرد، خالق و توسعه دهندۀ پلتفرم یوبرد، مجری پروژه های الکترونیکی، فعال در صنعت آسانسور، سابقه فعالیت در صنعت خودرو و همکاری در صنعت پزشکی و صنایع دیگر، آموزگار آموزش های یوبرد

جدیدترین های برنامه نویسی در وبلاگ و میکروآموزش

غیر حرفه ای ترین روش کدنویسی

غیرحرفه ای ترین روش کدنویسی

غیر حرفه ای ترین روش در کدنویسی، استفاده از تاخیری است که کل سیستم را منتظر می گذارد.

پیچیدگی نرم افزار

پیچیدگی نرم افزار

پیچیدگی نرم افزار (software complexity) در یک محصول از پیچیدگی عملکرد کدهای آن (رابط های سیستمی متعدد و الزامات پیچیده) سرچشمه می گیرد.

لزوم کد تست برای سخت افزار

لزوم کد تست برای سخت افزار

لزوم کد تست برای سخت افزار، به تسهیل فرایند توسعه برمیگردد.

خواندن متغیر قبل از مقداردهی به آن در استاندارد MISRA C++

خواندن متغیر قبل از مقداردهی به آن در استاندارد MISRA C++

خواندن متغیر قبل از مقداردهی به آن در استاندارد MISRA C++، ممنوع شده است.

پیش ثبت نام تا به حد نصاب رسیدن کلاس خصوصی 3 نفرۀ آموزش STM32

0 دیدگاه

یک دیدگاه بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دانلود

لطفا برای دریافت لینک دانلود اطلاعات خواسته شده را وارد نمایید
ضبط پیام صوتی

زمان هر پیام صوتی 4 دقیقه است