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

توسط | 29 مرداد, 1402 | برنامه نویسی میکرو, میکروآموزش | 0 دیدگاه

خواندن متغیر قبل از مقداردهی به آن در استاندارد 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++ در یوبرد ارائه شده است.

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

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

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

رضا اسدی

رضا اسدی

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

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

از کدویژن استفاده نکنید.

دیگه استفاده از CodeVision زشته

اگر دانشپذیر یا مدرس در این زمینه هستید، پیشنهاد می کنیم که از این نرم افزار استفاده نکنید. برای کار با میکروکنترلرهای AVR به سراغ نرم افزارهایی مثل Atmel Studio و Visual Studio بروید.

از چه میکروکنترلری استفاده کنیم؟

از چه میکروکنترلری استفاده کنیم؟

اگر نیاز به یک جواب کلیدی دارید، پاسخ آن میکروکنترلر STM32 است. امروزه میکروکنترلرهای STM32 بهترین گزینه برای شما در ایران و آسیا و بسیاری از کشورهای دنیاست.

چند برد الکترونیکی برای طیف مختلف محصولات؟

چند برد الکترونیکی برای طیف مختلف محصولات؟

در بسیاری از صنایع نه می توانید یک محصول داشته باشید که تمام طیف بازار هدف شما را پوشش دهد و نه می توانید محصولات زیادی داشته باشید.

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

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

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

0 دیدگاه

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

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

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

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

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

آموزش FreeRTOS یوبرد

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

دانلود

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

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