
در آردوینو، نوع دادهی short یک نوع عدد صحیح است که دقیقاً ۲ بایت (۱۶ بیت) حافظه مصرف میکند.
این نوع داده در تمام پلتفرمهای آردوینو (از جمله Uno، Nano، ESP32 و Due) همیشه ۲ بایت است — برخلاف int که در برخی بردها ۴ بایت میشود.
محدودهی مقادیر قابل ذخیره در یک متغیر short:
−۳۲,۷۶۸ تا +۳۲,۷۶۷
جالب است بدانید که در بردهای مبتنی بر AVR (مثل Arduino Uno)، short و int کاملاً یکسان هستند — هر دو ۲ بایت و همان محدوده را دارند.
هدف اصلی 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);
}
}
چون در آردوینو Uno/Nano، short و int هر دو ۲ بایت هستند، استفاده از short فقط کد را طولانیتر میکند، نه کارآمدتر!
پس مگر اینکه نیاز به سازگاری چندپلتفرمی داشته باشید، بهتر است از int استفاده کنید — چون خواناتر و رایجتر است.
اگر مطمئن هستید که عدد شما همیشه مثبت است (مثل مقدار سنسور یا شماره پین)، میتوانید از unsigned short استفاده کنید:
— محدوده: ۰ تا ۶۵,۵۳۵
این محدوده برای بسیاری از سنسورهای ۱۰ بیتی (مثل آنالوگ آردوینو با محدوده ۰–۱۰۲۳) کاملاً کافی است و دو برابر فضای مثبت short عادی را فراهم میکند.
byte: ۱ بایت — فقط ۰ تا ۲۵۵short: ۲ بایت — −۳۲,۷۶۸ تا +۳۲,۷۶۷ (ثابت در تمام بردها)int: ۲ بایت در AVR، ۴ بایت در ESP32/Due — برای کاربردهای عمومیlong: ۴ بایت — برای اعداد بسیار بزرگبرای اکثر مبتدیها، استفاده از int کافی و توصیهشده است.
short فقط زمانی مفید است که نیاز به کنترل دقیق حجم حافظه یا سازگاری بین پلتفرمها دارید.
این مطلب بر اساس مستندات رسمی Arduino از بخش short – Language Reference تهیه شده است، با توضیحات سادهشده، مثالهای کاربردی و نکات طلایی منحصربهفرد برای جامعه فارسیزبان.
برچسب های مهم