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

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

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

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

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

 

عملگرهای رابطه‌ای برای اشاره‌گرها در استاندارد MISRA C++، ممنون شده است. این یک قانون الزامی به شمارۀ 5-0-18 در استاندارد MISRA C++ است. متن این الزام در این استاندارد بصورت زیر است:

>, >=, <, <= shall not be applied to objects of pointer type, except where they point to the same array.

ترجمه: عملگرهای <، =<، > و => نباید برای اشاره‌گرها اعمال شوند، مگر در مواردی که اشاره‌گرها به یک آرایۀ یکسان اشاره می‌کنند.

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

void f1 ()

{

int32_t a1[10];

int32_t a2[10];

int32_t *p1 = a1;

 

if (p1 < a1) // compliant

{

}

 

if (p1 < a2) // Non-compliant

{

}

}

از کدهای فوق متوجه می شویم که عملگرهای فوق را برای اشاره گر فقط زمانی می توانیم بکار ببریم که طرف دیگر عملگر، عملوندی باشد که اشاره گر به آن اشاره کرده است. در مثال فوق شرط if اول مشکلی ندارد اما شرط if دوم مطابق این قانون پذیرفتنی نیست.

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

درمورد مقایسۀ بین انواع float نیز چنین محدودیتی وجود دارد که در میکروآموزش مقایسۀ برابری انواع float در استاندارد 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 دقیقه است