نوع داده short در آردوینو — آیا واقعاً نیاز داریم؟  
آردوینو ایران | آموزش تخصصی آردوینو به فارسی

آردوینو ایران | آموزش تخصصی آردوینو به فارسی

آردوینو ایران — مرجع تخصصی آموزش آردوینو به فارسی! دوره‌های کاربردی، پروژه‌محور و گام‌به‌گام برای مبتدی‌ها تا پیشرفته‌ها: از راه‌اندازی اولین LED تا ساخت ربات، IoT و سیستم‌های هوشمند خانه. یادگیری عملی، کدنویسی ساده، پشتیبانی فنی و دسترسی مادام‌العمر به محتوا — فقط برای عاشقان الکترونیک و برنامه‌نویسی سخت‌افزاری.

اشتراک در خبرنامه

جهت عضویت در خبرنامه لطفا ایمیل خود را ثبت نمائید

Captcha

آمار بازدید

  • بازدید امروز : 8
  • بازدید دیروز : 6
  • بازدید کل : 14889

نوع داده short در آردوینو — آیا واقعاً نیاز داریم؟


نوع داده short در آردوینو — آیا واقعاً نیاز داریم؟

نوع داده short در آردوینو — وقتی int هم بزرگ است!

short چیست؟

در آردوینو، نوع داده‌ی short یک نوع عدد صحیح است که دقیقاً ۲ بایت (۱۶ بیت) حافظه مصرف می‌کند.
این نوع داده در تمام پلتفرم‌های آردوینو (از جمله Uno، Nano، ESP32 و Due) همیشه ۲ بایت است — برخلاف int که در برخی برد‌ها ۴ بایت می‌شود.

محدوده‌ی مقادیر قابل ذخیره در یک متغیر short:

−۳۲,۷۶۸ تا +۳۲,۷۶۷

جالب است بدانید که در برد‌های مبتنی بر AVR (مثل Arduino Uno)، short و int کاملاً یکسان هستند — هر دو ۲ بایت و همان محدوده را دارند.

چرا short وجود دارد؟

هدف اصلی short این است که یک نوع داده‌ی ثابت‌الاندازه برای اعداد کوچک فراهم کند.
اگر کد شما باید روی چندین پلتفرم مختلف (مثل Uno و ESP32) اجرا شود و می‌خواهید مطمئن باشید که متغیر شما همیشه ۲ بایت است، short گزینه‌ی مناسبی است.

اما در عمل، برای اکثر پروژه‌های مبتدی، نیازی به استفاده از short نیست — چون int در AVR همان کار را انجام می‌دهد و در ESP32 هم معمولاً مشکلی ایجاد نمی‌کند.

نحوه تعریف و استفاده

short temperature = -15;
short sensorValue = 1023;
short counter = 0;

نحوه‌ی استفاده آن دقیقاً مثل int است — فقط نامش کوتاه‌تر است!

مثال کاربردی: ذخیره‌ی داده‌های سنسور در آرایه‌ی بزرگ

فرض کنید می‌خواهید ۱۰۰۰ مقدار سنسور را در حافظه ذخیره کنید. اگر از int استفاده کنید و روی ESP32 باشید، هر مقدار ۴ بایت مصرف می‌کند (جمعًا ۴۰۰۰ بایت).
اما اگر مطمئن باشید که مقادیر سنسور بین ۰ تا ۱۰۲۳ هستند، می‌توانید از short استفاده کنید تا حافظه را نصف کنید:

const int MAX_SAMPLES = 1000;
short sensorBuffer[MAX_SAMPLES];  // فقط 2000 بایت RAM مصرف می‌کند

void setup() {
  for (int i = 0; i < MAX_SAMPLES; i++) {
    sensorBuffer[i] = analogRead(A0);
    delay(10);
  }
}

نکته طلایی ۱: short در AVR هیچ صرفه‌جویی حافظه‌ای ایجاد نمی‌کند!

چون در آردوینو Uno/Nano، short و int هر دو ۲ بایت هستند، استفاده از short فقط کد را طولانی‌تر می‌کند، نه کارآمدتر!
پس مگر اینکه نیاز به سازگاری چندپلتفرمی داشته باشید، بهتر است از int استفاده کنید — چون خواناتر و رایج‌تر است.

نکته طلایی ۲: unsigned short برای داده‌های فقط مثبت

اگر مطمئن هستید که عدد شما همیشه مثبت است (مثل مقدار سنسور یا شماره پین)، می‌توانید از unsigned short استفاده کنید:
— محدوده: ۰ تا ۶۵,۵۳۵
این محدوده برای بسیاری از سنسورهای ۱۰ بیتی (مثل آنالوگ آردوینو با محدوده ۰–۱۰۲۳) کاملاً کافی است و دو برابر فضای مثبت short عادی را فراهم می‌کند.

جمع‌بندی: short در مقابل سایر انواع عددی

  • byte: ۱ بایت — فقط ۰ تا ۲۵۵
  • short: ۲ بایت — −۳۲,۷۶۸ تا +۳۲,۷۶۷ (ثابت در تمام برد‌ها)
  • int: ۲ بایت در AVR، ۴ بایت در ESP32/Due — برای کاربردهای عمومی
  • long: ۴ بایت — برای اعداد بسیار بزرگ

برای اکثر مبتدی‌ها، استفاده از int کافی و توصیه‌شده است.
short فقط زمانی مفید است که نیاز به کنترل دقیق حجم حافظه یا سازگاری بین پلتفرم‌ها دارید.

منبع رسمی

این مطلب بر اساس مستندات رسمی Arduino از بخش short – Language Reference تهیه شده است، با توضیحات ساده‌شده، مثال‌های کاربردی و نکات طلایی منحصربه‌فرد برای جامعه فارسی‌زبان.

  انتشار : ۱۲ مهر ۱۴۰۴               تعداد بازدید : 299

برچسب های مهم

دیدگاه های کاربران (0)

http://kia-ir.ir

تمام حقوق مادی و معنوی این وب سایت متعلق به "آردوینو ایران | آموزش تخصصی آردوینو به فارسی" می باشد

فید خبر خوان    نقشه سایت    تماس با ما