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

by | 29 مرداد, 1402 | برنامه نویسی میکرو, میکروآموزش | 0 comments

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

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

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

خواندن متغیر قبل از مقداردهی به آن در استاندارد MISRA C++، ممنوع شده است. متن قانون 8-5-1 یک قانون الزامی از استاندارد MISRA C++ در ادامه ارائه شده است:

All variables shall have a defined value before they are used.

همۀ متغیرها قبل از استفاده باید مقدار مشخصی داشته باشند.

این قانون صراحتا بیان می کند که باید قبل از اینکه آرایه ها خوانده شوند، یک مقداری در آنها نوشته شود. همچنین این استاندارد در ادامه بیان می کند که این نوشتن مقدار قبل از خواندن آرایه ها، لزوما نباید در مقدار دهی اولیه صورت بگیرد.

در ادامه به چند نکتۀ دیگر مرتبط با این موضوع توجه کنید:

  • طبق [1]3002:28841 CEI/OSI، متغیر با مدت زمان ذخیرۀ استاتیک، اگر مقداردهی اولیه نشود، به طور خودکار صفر می‌شود. در عمل، بسیاری از محیط‌های امبدد این کار را نمی‌کنند.
  • متغیر با مدت زمان ذخیرۀ اتوماتیک هم معمولاً به طور خودکار مقداردهی اولیه نمی‌شود.
  • سازنده‌های کلاس هم باید همۀ اعضای غیر ثابت کلاس را مقداردهی اولیه کنند.

به عنوان مثال به موارد زیر توجه کنید:

class c

{

public:

c() : m_a(10), m_b(7) //Compliant

{

}

 

c(int32_t a) : m_a(a) //Non-Compliant

{

}

 

int32_t GetmB (void)

{

return (m_b);

}

 

private:

int32_t m_a;

int32_t m_b;

};

 

C c(5);

 

int main (void)

{

if (c.GetmB() > 0) //m_b has not been initialized

{

}

}

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

لینک های مرتبط در میکروآموزش یوبرد:

سفارش پروژه میکروکنترلر یوبرد

زیرساخت مطمئن صنعت

رضا اسدی

رضا اسدی

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

جدیدترین های میکروآموزش

فرق آماتور و حرفه‌ای در الکترونیک

فرق آماتور و حرفه‌ای در الکترونیک

در این میکروآموزش، فرق آماتور و حرفه‌ای در الکترونیک را با نکات فنی واقعی، تجربه صنعتی و استانداردهای بین‌المللی بررسی می‌کنیم.

علت سوختن برد الکترونیکی

علت سوختن برد الکترونیکی چیست؟

علت سوختن برد الکترونیکی چیست؟ در این میکروآموزش، با مقایسه طراحی معماری و برد الکترونیکی، مفهوم طراحی پایدار را بررسی می‌کنیم.

پرینتر خمیر قلع در مونتاژ SMD

پرینتر خمیر قلع در مونتاژ SMD

پرینتر خمیر قلع در مونتاژ SMD یکی از مراحل کلیدی در فرآیند تولید برد است. این آموزش اهمیت این مرحله و دقت مورد نیاز را بررسی می‌کند.

مسیر برگشت جریان در طراحی PCB

مسیر برگشت جریان در طراحی PCB

مسیر برگشت جریان در طراحی PCB مفهومی کلیدی برای عملکرد بی‌نویز است. این آموزش با نگاهی الهام‌گرفته از معماری ایرانی، اهمیت آن را بررسی می‌کند.

0 Comments

Submit a Comment

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

آموزش های یوبرد

آموزش TFT LCD با TouchGFX و STM32 یوبرد

گرافیک کاربرپسند با میکروکنترلر ST

آموزش FreeRTOS یوبرد

زمان واقعی در میکروکنترلر و پردازنده های کوچک با FreeRTOS

آموزش طراحی PCB و نویز یوبرد

تجسم دنیای الکترونیک

آموزش زبان C و MISRA-C یوبرد

گام نخست دنیای میکروکنترلر

آموزش لحیم کاری و IPC-A-610 یوبرد

ساخت دنیای الکترونیک

آموزش آردوینو یوبرد

جادۀ آسفالت میکروکنترلر

آموزش ماژول های SIM800 یوبرد

تلفن همراه صنعت

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

لمس شی گرایی در میکروکنترلرها

آموزش میکروکنترلرهای AVR یوبرد

شاهکار 8 بیتی Atmel

آموزش میکروکنترلرهای LPC یوبرد

یادگار فیلیپس

دانلود

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

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