حوزه‌ی دید متغیرها در آردوینو

حوزه‌ی دید متغیرها در آردوینو

حوزه‌ی دید متغیرها در آردوینو
حوزه‌ی دید متغیرها در آردوینو

متغیرها در زبان C که آردوینو از آن استفاده می‌کند، ویژگی‌‌ای به نام حوزه دید (scope) دارند. اولین نسخه‌های زبان‌ها مثل BASIC، این ویژگی را نداشتند و همه‌ی متغیرها  global بودند.

متغیرهای global (سراسری)، در همه‌ی توابع قابل‌مشاهده و معتبر هستند. در آردوینو هر متغیری که خارج از یک تابع (مانند ()setup()، loop و …) تعریف شود، یک متغیر global خواهد بود. متغیرهای local (محلی) تنها در تابعی که تعریف شده‌اند قابل‌مشاهده هستند.

وقتی‌که برنامه شروع به گسترش و به‌تبع آن پیچیدگی می‌کند، متغیرهای local راه خوبی برای کسب این اطمینان هستند که تنها یک تابع به متغیرهای خودش دسترسی دارد. اگر یک تابع به‌صورت غیرعمدی متغیرهای یک تابع دیگر را تغییر دهد، خطا (ارور) رخ می‌دهد. اما استفاده از این نوع متغیر از این خطاهای برنامه‌نویسی جلوگیری خواهد کرد.

هم‌چنین تعریف و مقداردهی اولیه متغیر درون حلقه‌‌ی فور گاهی اوقات مفید است. این نوع متغیرها فقط درون براکت‌های حلقه‌ی فور قابل دستیابی هستند.

مثال:

 

منبع

حمایت از Yalda

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

0 نفر

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

توجه

Yalda
Yalda

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

دیدگاه ها

2 دیدگاه

  • Ali
    ۲۰ دی ۱۳۹۶

    سلام ببخشید آیا تعریف متغیر های لوکال حجم کمتری از برنامه رو مصرف میکنه؟

    • Zeus ‌
      زئوس Zeus
      ۲۴ اسفند ۱۳۹۶

      نه لذوما ولی بی تاثیر هم نیست
      تفاوت متغییر لوکال با گلوبال (محلی یا سراسری) تنها در محل گرفتن حافظه است
      به این معنی که متغییر های لوکال حافظه مورد نیاز را از قسمت استک برنامه بر میدارند و پس از تمام شدن روتین تابع حافظه اشعال شده آزاد می شود.
      در صورتی که متغیر های گلوبال حافظه مورد نیاز را از حافظه کلی برنامه برداشت می کنند و تا مادامی که برنامه در حال اجرا است ، حافظه را آزاد نمی کنند.

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان 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 سال پیش
سیـــســـوگ

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