السن

متغیرها در زبان برنامه نویسی C

گونه های پیش ساخته پویاچنده (متغیر) در زبان برنامه نویسی C

نوع هایی هستند که بصورت پیش فرض وجود دارند، انواع ثانویه رو خودمون میسازیم. در ادامه به انواع اولیه میپردازیم.

 

گونه های پویاچنده (متغیر) اینتیجر

اینتیجر یعنی اعداد صحیح ، این گونه پویاچنده ها میتونن:

  • نشانه دار یا بدون نشانه.
  • 8 ، 16 ، 32 یا 64 بیتی باشند.

 

اعداد صحیح یا integer

 

signed char : عدد صحیح 8 بیتی نشانه دار از -128 تا 127 .

unsigned char : عدد صحیح 8 بیتی بی نشانه از 0 تا 255 .

char : بسته به دستگاه، شاید 8 بیتی نشانه دار یا بی نشانه باشد، در زمینه ی برنامه نویسی میکروکنترلرهای STM32 این گونه پویاچنده 8 بیتی بی نشانه با اندازه از 0 تا 255 هست. زسم هست که این گونه تنها برای نگهداری کاراکترهای ASCII  (برای نمونه ‘m’) بکار برود.

short int : عدد صحیح 16 بیتی با اندازه از -32768 تا 32767 هست. نام های دیگر این گونه: short و signed short int و signed short هستند.

unsigned short int : عدد صحیح 16 بیتی بی نشانه با اندازه از 0 تا 65535 هست. نام دیگر این گونه unsigned short هست.

int : عدد صحیح 32 بیتی نشانه دار با اندازه از 2,147,483,648 تا  2,147,483,647 هست. نام دیگر این گونه signed int  یا signed است.

unsigned int : 32 بیتی بی نشانه با اندازه از 0 تا 4,294,967,295 هست. نام دیگر unsigned است.

 long int : بسته به دستگاه، 32 یا 64 بیتی است. در برنامه نویسی میکروکنترهای STM32 این گونه پویاچنده 32 بیتی و همانند int است. نام های دیگر long  و signed long int و signed long است.

unsigned long int : ببسته به دستگاه، 32 بیتی یا 64 بیتی است. در برنامه نویسی میکروکنترلرهای STM32 این گونه پویاچنده همانند گونه unsigned int است. نام دیگر unsigned long است.

long long int : عدد صحیح 64 بیتی علامت دار با دامنه از

 -9,223,372,036,854,775,808 تا  9,223,372,036,854,775,807هست. نامهای دیگر long long و signed long long و signed long long int هستند.

unsigned long long int : عدد صحیح 64 بیتی بی نشانه با اندازه از 0 تا 18,446,744,073,709,551,615 هست. نام دیگرش  unsigned long long هست.

 

گونه های پیش ساخته، نامهای سردرگم کننده دارند و شاید در دستگاه های گوناگون، کارکرد هایشان هم یکسان نباشد. از این رو در برنامه نویسی میکروکنترلر، گونه هایی را بکارمیگیریم که فایل stdint.h برای ما فراهم کرده. این گونه ها با بکارگیری گونه های از پیش ساخته، درست شدن و نامگذاری اونها جوری هست که از روی نامشان همه ی ویژگی های گونه دریافته میشه.

 

انواع صحیح بدون علامت:

برای نمونه درباره ی گونه ی  uint32_t :

  • حرف u به چم (معنی) unsigned یا بی نشانه هست.
  • int به چم شماره صحیح بودن هست.
  • 32 شمار بیت هاست.
  • و _t به چم اینست که این یک type یا گونه هست.

uint32_t در زبان برنامه نویسی C

 

گونه های پویاچنده برای شماره های گویا در زبان برنامه نویسی C

اندازه این گونه ها نیز به دستگاه وابسته است. در زیر، اندازه این گونه ها در برنامه نویسی میکروکنترلرهای STM32 آورده شده.

float : شماره های گویای 4 بایتی.

double : شماره های گویای 8 بایتی.

long double : شماره های گویای 8 بایتی.

پویاچنده یا متغیر در زبان برنامه نویسی C

پویاچنده یا چنده ای ( مقداری ) که پویا است و تغییر میکند، برابر پارسی واژه ی متغیر است. و یک نام است که روی یک یا چند خانه پشت هم در داده گاه (حافظه) گذاشتیم و میتوانیم درونمایه اون رو بخوانیم یا در آن بنویسیم.

شناسش پویاچنده ( تعریف متغیر )

برای شناسش پویاچنده، باید اینها رو پشت هم بنویسید:

  1. گونه ی پویاچنده.
  2. یک یا چند جای تهی.
  3. نام پویاچنده.
  4. نشانه ; در پایان.

تعریف متغیر در زبان برنامه نویسی C

مابین گونه و نام باید white space باشه ، white space یک یا چند تا از کاراکترهای space و tab و enter هست .

فضای خالی در تعریف متغیر در زبان برنامه نویسی C

مقدار دهی اولیه متغیرها

در تعریف متغیر میتونیم مقدار اولیه اون متغیر رو هم مشخص کنیم، اگر اینکار رو انجام ندید مقدار اولیه پیشفرض صفر در این متغیرها ذخیره میشه.

نکته : نمیشود در مقدار دهی اولیه متغیرهای global از متغیرهای global دیگر استفاده کرد.

 

مقداردهی اولیه متغیرها در زبان برنامه نویسی C

 

لیست تعریف متغیر

همزمان میتونید چند تا متغیر هم از یک نوع تعریف کرد. باید اسم متغیر ها رو پشت سر هم نوشت و بین اونها علامت ,  گذاشت.

 

لیست تعریف متغیرها در زبان برنامه نویسی C یا declaration list

Scope و محدوده دسترسی به متغیر ها در زبان C

Scope یعنی محدوده تعریف و دسترسی، یعنی از چه مکانهایی در کد میتونیم مقدار متغیر رو بخونیم یا مقدار جدید رو در متغیر بنویسیم. برای متغیرهایی که در loop ها تعریف شده اند ، محدوده ی دسترسی همان loop است.

 

متغیرهای local تعریف شده در loop در زبان برنامه نویسی C

متغیرهای global در زبان C

متغیر هایی که در فایل های سورس کد و خارج از توابع تعریف میشن متغیرهای gloal هستند. محدوده دسترسی متغیرهای global ، اون فایل سورس کدی هست، که متغیر در اون فایل تعریف شده.

تعریف extern متغیر ها در زبان C

در تعریف extern یک متغیر در زبان C ، کلمه ی کلیدی extern به تعریف اصلی اضافه میشود. این تعریف به معنای یک اعلان به کامپایلر است با این مفهوم که متغیر مورد نظر در فایل دیگری تعریف شده است.

تعریف extern متغیرها در زبان برنامه نویسی C

 

در حالت عادی فقط از همون فایل سورس کدی که متغیر global رو در اون تعریف کردیم میتونیم به متغیرهای global دسرسی داشته باشیم. اگر بخواهیم از سایر فایل های سورس کد هم به متغیر دسترسی پیدا کنیم باید تعریف extern اون متغیر رو به فایلهای سورس کد دیگر اضافه کنیم. کلمه ی extern قبل از تعریف عادی متغیر قرار میگیره.

استفاده از متغیر در فایلهای سورس دیگر در زبان برنامه نویسی C

 

تعریف extern متغیرهای global در فایل های header یا .h هم وجود داره. اینطوری دسترسی به متغیر مورد نظر از هر فایل سورسی که فایل header به اولش اضافه بشه ممکن هست.

 

کاربرد تعریف extern در زبان برنامه نویسی C

متغیرهای Static و global در زبان برنامه نویسی C

کلمه ی static قبل از تعریف متغیرهای global ، محدوده دسترسی اون متغیر رو به همون فایل .c یا سورس  کد محدود میکنه و دیگه از سایر فایل های .c نمیشه به اون متغیر دسترسی داشت.

تعریف static یک متغیر میتونه همزمان در چند فایل .c وجود داشته باشه، اینجوری هر کدوم از اون فایلها یکی نسخه از اون متغیر برای خودشون دارند، یعنی چند فایل سورس کد متغیرهای هم نام دارند که البته به هم ربطی ندارند و در فضای جداگانه در حافظه ذخیره شدن.

در حالت عادی نمیتونید متغیرهای هم نام در فایل های سورس کد مختلف داشته باشید، فقط در حالتی ممکن است که با کلمه ی static دسترسی به اون متغیرها رو محدود کنید.

 

متغیرهای static و global در زبان برنامه نویسی C

تعریف static متغیرهای global در فایل های header هم میتونه وجود داشته باشه. اون فایل header به اول هر فایل .c که اضافه بشه، اون فایل .c یک نسخه از اون متغیر برای خودش خواهد داشت.

متغیرهای local

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

برای متغیرهای local ، محدوده دسترسی تابعی هست که متغیر در اون تعریف شده.

 

متغیرهای local در زبان برنامه نویسی C

 

متغیرهای local و static در زبان برنامه نویسی C

این نوع داستانشون کلا متفاوته. با قرارگیری کلمه ی static قبل از تعریف متغیرهای local ، عمر متغیر تا پایان برنامه افزایش میابد و با اتمام تابع متغیر نابود نشده و مقدار خود را حفظ میکند. البته محدوده دسترسی به این متغیرها تفاوتی با متغیرهای معمولی local نداشته و به تابعی که در آن تعریف شده ، محدود میگردد.

مثالی از کاربرد این متغیرهای static و local شمارش تعداد دفعات فراخوانی شدن یک تابع است.

 

متغیرهای static و local در زبان برنامه نویسی C

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا