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

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

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

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

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

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

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

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

مثال:

نکته:

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

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

 

 

 

منبع

حمایت از Yalda

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

Yalda
Yalda

علاقه‌مند به یادگیری چیزهای جدید!

دیدگاه ها

4 دیدگاه

  • مرتضی
    ۱۳ دی ۱۴۰۰

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

    • Sisoog Os
      Sisoog Os
      ۱۳ دی ۱۴۰۰

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

  • آرش
    ۱۶ مرداد ۱۳۹۶

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

    • Zeus ‌
      زئوس Zeus
      ۱۶ مرداد ۱۳۹۶

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

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

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک