آموزش زبان c++\c
بخش یک : انواع داده در C و C++؛ پایهای تا حرفهای برای آردوینو و میکروکنترلرها

در ادامه انواع داده در C و C++ را ویژهٔ برنامهنویسی آردوینو و میکروکنترلرها طوری توضیح میدهم که هم برای شروع مناسب باشد و هم در سطح حرفهای بتوانی از آنها استفاده کنی.
تصور کن میخوای یک سری وسیله داخل چندتا جعبه بذاری.
جعبهها اندازههای مختلف دارن:
- جعبه کوچک
- جعبه متوسط
- جعبه بزرگ
- جعبه خیلی بزرگ
- جعبه های علامت دار و بدون علامت
در آردوینو، متغیرها مثل همین جعبهها هستن؛ هر کدوم اندازهای دارن و فقط یه مقدار مشخص جا میگیرن.
:byte
مثل یک جعبهٔ خیلی کوچک
ظرفیت: فقط 1 بایت → 0 تا 255
مثل یک کشو کوچک که فقط یک عدد کوچیک داخلش جا میشه.
مثال کاربردهای واقعی:
- شماره پین LED
- مقدار بین 0 تا 255 مثل PWM، روشنایی، رنگ
:int
یک جعبه متوسط
ظرفیت: 2 بایت → از -32768 تا +32767
:unsigned int
همان جعبهٔ متوسط، اما بدون علامت
یعنی منفی ندارد → فقط مثبت
ظرفیت: 0 تا 65535
وقتی یقین داری مقدار منفی نداریم، این عالیه.
برای چیزی مثل فاصله میتونیم از این متغیر استفاده کنیم
:float
مثل یک جعبهٔ مخصوص آب که ظرفیت اندازه دقیقش مهمه
:char
یک جعبهٔ کوچک مخصوص حروف
:bool
یک جعبهٔ خیلی خیلی کوچک، فقط روشن/خاموش
خب بعد از توضیحات مفهومی بالا بریم برای اموزش تخصصی و حرفه ای انواع داده ها :
1. انواع صحیح (Integer Types) در آردوینو / AVR
بر خلاف PC، در آردوینو اندازهٔ انواع کاملاً مشخص و ثابت است:
byteاندازه آن برابر است با یک بایت : بازه 0 تا 255intاندازه آن برابر است با دو بایت : بازه -32768 تا +32767unsigned intاندازه آن برابر است با دو بایت : بازه 0 تا 65535longاندازه آن برابر است با چهار بایتunsigned longاندازه آن برابر است با چهار بایتshort= همانint(دو بایت)
مثال کاربرد در آردوینو:
;byte ledPin = 13
;unsigned int adcValue = 0
;()long timeMs = millis
نکات حرفهای:
- اگر مقدار هرگز منفی نمیشود، همیشه از unsigned استفاده کن → سرعت بیشتر، بازه دو برابر.
2. نوعهای typedef شده (برای کنترل دقیق)
در آردوینو و میکروکنترلرها انواع زیر بسیار مهماند زیرا اندازه دقیق دارند:
uint8_t → 8-bit unsigned
int8_t → 8-bit signed
uint16_t → 16-bit unsigned
uint32_t → 32-bit unsigned
(خیلی سنگین)uint64_t → 64-bit unsigned
این نوعها از <stdint.h> میآیند و برای ارتباطات، پروتکلها، رجیسترهای سختافزاری و ساختار دادههای دقیق استفاده میشوند.
مثال حرفهای:
;uint8_t command = 0xA5
;uint16_t sensorValue = analogRead(A0)
;()uint32_t microsTime = micros
3. نوع کاراکتر و رشتهها
char
- یک بایت
- در آردوینو برای ذخیرهٔ متن و کاراکتر استفاده میشود.
;'char c = 'A
;"char text[] = "Hello
4. انواع اعشاری (float و double)
در آردوینو UNO / AVR:
floatبرابر است با چهار بایتdouble= همان float (هیچ دقت اضافهای ندارد!)
یعنی:
// تفاوتی ندارد! ;float x = 3.14
;double y = 3.14
5. بولین (boolean / bool)
در آردوینو:
booleanبرابر است با یک بایتboolاستاندارد
;bool isOn = true
6. نوع void (نوع تهی)
کاربرد:
- نشان میدهد تابع خروجی ندارد
- نشان میدهد اشارهگر نوع نامشخص دارد (generic pointer)
{} () void setup
{} () void loop




