آموزش, رفرنس

Define# در‌ آردوینو

define in arduino

define# یکی از اجزای مفید زبان c است. define# به برنامه‌نویس این امکان را می‌دهد که قبل از کامپایل کردن برنامه، به یک مقدار ثابت، نامی را اختصاص دهد. ثابت‌هایی که با استفاده از define# تعریف می‌شوند، هیچ فضایی از حافظه‌ی برنامه‌ی روی چیپ را اشغال نمی‌کنند. کامپایلر در زمان کامپایل، مقدار تعریف‌شده را به این ثابت‌ها اختصاص خواهد داد. اما این تعریف عوارض جانبی ناخواسته‌ای هم می‌تواند داشته باشد. به‌عنوان‌مثال اگر اسمی که قبلاً به یک ثابت از نوع define# داده‌ایم را در نام ثابت یا متغیری دیگر بیاوریم (در نام متغیر یا ثابت، این متنِ اسم نیز آمده باشد)، به‌جای این اسم، مقدارِ (عددی یا متنی) تعریف‌شده در ثابتِ define# قرار خواهد گرفت.

به‌طورکلی تعریف ثابت‌ها با استفاده از const ارجحیت دارد و بهتر است به‌جای define# از const استفاده شود.

define# در آردوینو سینتکسی مشابه define# در زبان سی دارد:

سینتکس(نحو):

توجه کنید که نوشتن # الزامی است.

مثال:

نکته:

پس از define نیازی به استفاده از سمی‌کولن نیست و اگر قرار بدهید، خطای کامپایلری نامفهومی در ادامه رخ خواهد داد.

و همچنین قرار دادن علامت مساوی در عبارت define نیز باعث ارورهای نامعلوم خواهد شد.

 

 

 

منبع

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

4 دیدگاه در “Define# در‌ آردوینو

  1. Avatar for مرتضی مرتضی گفت:

    سلام
    خسته نباشید .
    بسیار شیوا و کامل توضیح دادید
    ممنون موفق و پیروز باشید .

    1. Avatar for Sisoog Os Sisoog Os گفت:

      سلام خواهش میکنم دوست عزیز

  2. Avatar for آرش آرش گفت:

    سلام،
    من میخواستم که فرضا Size رو define کنم، ولی مقدار Size قرار هست که از طریق Serial.read() از کاربر دریافت بشه بعد عملیات #define صورت بگیره.
    چجور باید اینکارو کرد؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      ببینید Define فقط برای ثوابت هست ، مقادیری که توی برنامه هیچ تغییری نمی کنند ، برای این کار شما نمی تونید از Define استفاده کنید چراکه مقدار Size در خلال برنامه ممکنه توسط کاربر تعویض بشه
      برای همین باید از متغیر استفاده کنید.

دیدگاهتان را بنویسید

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