انواع داده در زبان C به ‌طورکلی شامل انواع پایه، «شمارش‌ شده» (Enumerated)، «تهی» (Void) و «مشتق‌ شده» (Derived) می‌‌شوند. هر کدام از این نوع‌ها خود به زیر مجموعه‌های مختلفی تقسیم شده‌اند که در ادامه به طور کامل‌ توضیح داده‌ایم. نوع هر متغیر، تعیین می‌کند که آن متغیر به چه‌ میزان فضا از حافظه را اشغال کرده و مقدار ذخیره شده در آن فضا به چه شکلی باید تفسیر شود. در این مطلب از مجله فرادرس، درباره انواع داده در زبان C صحبت کرده‌ایم.

فهرست مطالب این نوشته
997696

به عنوان یکی از مفاهیم مرتبط با نوع‌ها می‌توان به متغیر اشاره کرد. متغیر به مکان‌‌ قابل آدرس‌دهی در حافظه کامپیوتر اشاره می‌کند که داده‌ها در آن‌جا نگهداری می‌شوند. به هر کدام از این ظرف‌های نگهداری داده‌ها نام مجزایی اختصاص می‌دهیم که به آن نام، متغیر گفته می‌شود. با کمک این نام‌ها می‌توانیم به سادگی از داده‌های درون متغیرها استفاده کنیم. در زبان C برای تعریف متغیر باید نوع قابل پذیرش توسط آن را نیز مشخص کنیم. زبان برنامه نویسی C، جزو زبان‌های با نوع‌دهی ایستا است. یعنی اینکه در زمان تعریف هر متغیر و قبل از استفاده از آن باید نام متغیر را همراه با نوع قابل ذخیره‌سازی در متغیر مشخص کنیم. در این مطلب به بررسی انواع مختلف مربوط به زبان C پرداخته‌ایم. زیرا C، زبانی با «نوع‌دهی قوی» (Strongly Typed) است، به این معنا که اجازه تغییر نوع در متغیرها به صورت خودکار داده نشده است.

انواع داده در زبان C کدام هستند؟

انواع داده در زبان C برای مشخص کردن نوع مقادیری به کار برده می‌شوند که باید در متغیرها ذخیره شوند. به طور کلی انواع داده در زبان برنامه نویسی C را می‌توان به چهار دسته زیر تقسیم کرد.

  • «انواع پایه» (Basic Types): این نوع‌ها برای اعداد و محاسبات ریاضی به کار برده می‌شوند. انواع پایه به دو دسته انواع اعداد صحیح و اعداد با ممیز شناور تقسیم می‌شوند.
  • «انواع شمارش شده» (Enumerated Types): این نوع‌ها هم شامل انواع قابل استفاده در محاسبات ریاضی می‌شوند. انواع شمارش شده برای مشخص کردن متغیرهایی به کار برده می‌شوند که فقط می‌توانیم مقادیر مشخص از نوع عدد صحیح و مجزا از هم را به آن‌ها اختصاص دهیم.
  • «نوع تهی» (The Type Void): استفاده از نوع Void در برنامه نویسی، برای توابع، نشان می‌هد که هیچ مقداری – در خروجی تابع یا بلوک کد – در دسترس نیست.
  • «انواع مشتق شده» (Derived Types): این نوع‌ها شامل نوع‌ «اشاره‌گر» (Pointer)، نوع‌ آرایه، نوع «ساختار» (Structure)، نوع Union و انواع تابع می‌شوند.

به انواع آرایه و Structure، «انواع تجمعی» (Aggregate Types) هم گفته می‌شود. زیرا این نوع‌ها چندین مقدار مختلف را در موجودیت واحدی، جمع می‌کنند. نوع هر تابع، نوع مقدار برگشتی آن تابع را نشان می‌دهد. در ادامه این مطلب، «انواع پایه» (Basic Types) را بررسی کرده‌ایم. بعد از آن، باقی نوع‌ها را هم پشت سر هم و یک به یک به ترتیب توضیح داده‌ایم.

انواع Basic در زبان C

همین‌طور که اشاره کردیم، انواع Basic در زبان C به دو دسته کلی «اعداد کامل» (Integer) و اعداد با «ممیز شناور» (Floating-Point) تقسیم می‌شوند.

در این قسمت از مطلب ابتدا اعداد Integer و سپس اعداد Floating-Point را به دقت بررسی کرده‌ایم.

نوع Integer

در فهرست زیر، جزئیات کامل همه داده‌های مربوط به اعداد صحیح را در زبان C بیان کرده‌ایم. این جزئیات همراه با اندازه فضای مورد نیاز برای ذخیره‌سازی هر داده – در همان نوع مربوط به آن – و محدوده مقادیر قابل نمایش ارائه شده‌اند.

  • Char: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۱ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۱۲۸- تا ۱۲۷ یا از ۰ تا ۲۵۵ را پوشش می‌دهد.
  • Unsigned Char: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۱ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۰ تا ۲۵۵ را پوشش می‌دهد.
  • Signed Char: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۱ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۱۲۸- تا ۱۲۷ را پوشش می‌دهد.
  • Int: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۲ تا ۴ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۳۲،۷۶۸- تا ۳۲۷۶۷ یا از ۲،۱۴۷،۴۸۳،۶۴۸- تا ۲،۱۴۷،۴۸۳،۶۴۷ را پوشش می‌دهد.
  • Unsigned Int: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۲ تا ۴ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۰ تا ۶۵۵۳۵ یا از ۰ تا ۴،۲۴۹،۹۶۷،۲۹۵ را پوشش می‌دهد.
  • Short: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۲ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۳۲،۷۶۸- تا ۳۲۷۶۷ را پوشش می‌دهد.
  • نوع Unsigned Short: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۲ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۰ تا ۶۵۵۳۵ را پوشش می‌دهد.
  • نوع Long: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۸ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۸- تا ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۷ را پوشش می‌دهد.
  • Unsigned Long: اندازه مورد نیاز برای ذخیره‌سازی هر واحد داده با این نوع برابر با ۸ بایت است. دامنه مقادیر قابل نمایش توسط این نوع هم از ۰ تا ۱۸۴۴۶۷۴۴۰۷۳۷۰۹۵۵۱۶۱۵ را پوشش می‌دهد.
بلوک‌هایی از انواع داده در زبان c با پس زمینه بنفش

در هر سیستم عاملی، برای بدست آوردن اندازه دقیق نوع یا متغیر، می‌توانیم از تابع sizeof()  زبان C استفاده کنیم. عبارت sizeof(Type) ، در خروجی، اندازه فضای ذخیره‌سازی شیء یا نوع مورد نظر را در واحد بایت برمی‌گرداند.

دو مورد از مشهور‌ترین انواع نام برده شده بالا را – نوع Char و نوع Int – در پایین، توضیح داده‌ایم.

داده از نوع Char

کاراکترهای مجزا با استفاده از نوع Char نمایش داده می‌شوند. این نوع به صورت معمول برای استفاده از کاراکترهای رمزگذاری شده ASCII یا UTF-8 مانند حروف الفبا، ارقام، نمادها یا علائم نگارشی به کار برده می‌شود. ۲۵۶ کاراکتر مختلف وجود دارند که می‌توان هر کدام از آن‌ها را با نوع Char نمایش داد. هر واحد داده با نوع Char به اندازه ۱ بایت فضای حافظه را اشغال می‌کند. برای مثال، کاراکترهایی مانند «’A’» و «’b’» و «’5’» یا «’$’» توسط کوتیشن‌های یگانه محصور شده‌اند.

داده از نوع Int

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

مثالی از Integer

کدی که در زیر نمایش داده شده، مثالی برای نشان دادن اندازه انواع مختلف عدد صحیح در سیستم عامل لینوکس است. این مثال را با استفاده از ثابت‌های تعریف شده در فایل هدر limits.h  پیاده‌سازی کرده‌ایم.

بعد از اینکه برنامه بالا را در سیستم عامل لینوکس کامپایل کرده و اجرا کنیم، نتایج زیر تولید شده و در کنسول برنامه نمایش داده می‌شوند.

CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535

نوع اعداد با ممیز شناور Floating-Point

در فهرست زیر، تمام جزئیات مربوط به اعداد با ممیز شناور را بیان کرده‌ایم. این جزئیات شامل اندازه فضای ذخیره‌سازی برای هر واحد داده با نوع مربوطه، محدوده مقادیر قابل نمایش و میزان دقت واحد‌های داده می‌شوند.

  • Float: هر واحد داده از این نوع نیاز به ۴ بایت فضا برای ذخیره‌سازی دارد. محدوده مقادیر قابل پذیرش توسط نوع Float برابر با ۱٫۲E-۳۸ تا ۳٫۴E+۳۸ بوده و تا ۶ رقم اعشار را به خوبی و با دقت بالا نمایش می‌دهد.
  • Double: هر واحد داده از این نوع نیاز به ۸ بایت فضا برای ذخیره‌سازی دارد. محدوده مقادیر قابل پذیرش توسط نوع Double برابر با ۲٫۳E-۳۰۸ تا ۱٫۷E+۳۰۸ بوده و تا ۱۵ رقم اعشار را به خوبی و با دقت بالا نمایش می‌دهد.
  • Long Double: هر واحد داده از این نوع نیاز به ۱۰ بایت فضا برای ذخیره‌سازی دارد. محدوده مقادیر قابل پذیرش توسط نوع Long Double برابر با ۳٫۴E-۴۹۳۲ تا ۱٫۱E+۴۹۳۲ بوده و تا ۱۹ رقم اعشار را به خوبی و با دقت بالا نمایش می‌دهد.
کامپیوتری که در حال کدنویسی است و بر روی لیوان حرف C انگلیسی نوشته شده - انواع داده در زبان C

فایل هدر float.h ، کلان‌دستورهایی را تعریف می‌کند که برای استفاده از مقادیر و جزئیات مربوط به روش ذخیره‌سازی اعداد حقیقی به برنامه نویس کمک می‌کنند.

مثالی از اعداد با ممیز شناور

مثالی که در زیر، پیاده‌سازی شده مقدار فضای ذخیره‌سازی مورد استفاده توسط داده‌های نوع Float را همراه با مقدار مربوط به محدوده عملیاتی آن‌ها نمایش می‌دهد.

بعد از کامپایل کردن و اجرای برنامه بالا در سیستم عامل لینوکس، نتایج بدست آمده به شکل زیر در خروجی به کاربر نمایش داده می‌شوند.

Storage size for float : 4 
FLT_MAX      :   3.40282e+38
FLT_MIN      :   1.17549e-38
-FLT_MAX     :   -3.40282e+38
-FLT_MIN     :   -1.17549e-38
DBL_MAX      :   1.79769e+308
DBL_MIN      :   2.22507e-308
-DBL_MAX     :  -1.79769e+308
Precision value: 6

توجه: تابع sizeof  مقدار size_t  را برمی‌گرداند. نوع عدد صحیح بدون علامت – یعنی مثبت – برابر با size_t  است. این مقدار بسته به سیستم عامل میزبان، تغییر می‌کند. شاید نوع size_t  همیشه برابر با «Long Unsigned Int» نباشد. بنابراین به‌جای استفاده از %d  در قالب‌دهی به رشته‌ها از %zu  استفاده می‌کنیم.

نسخه‌های اولیه زبان C دارای نوع Boolean نبودند. زبان C معرفی شده توسط ANSI با استانداردهای C99، نوع «ـbool» را معرفی کرد. در این نوع عدد صفر برابر با False و مقادیر غیر از صفر برابر با True در نظر گرفته شدند.

آموزش برنامه نویسی با زبان C در فرادرس

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

مجموعه آموزش برنامه نویسی سی C – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی C هدایت شوید.

C در همه جا حضور دارد. تقریباً همه سیستم‌های عامل برای رایانه‌ها به زبان C نوشته شده‌اند. اغلب گوشی‌های هوشمند و تبلت‌ها سیستم عامل مبتنی بر زبان C دارند. C++، Objective C و #C مستقیم بر مبنای C ساخته شده‌اند و زبان برنامه‌نویسی «پایتون» (Python) نیز به وسیله آن نوشته شده است. بنابراین فرادرس به عنوان تولیدکننده فیلم‌ها و مطالب آموزشی و علمی تلاش می‌کند تا مجموعه آموزش حرفه‌ای را برای این زبان نیز فراهم کند. در نتیجه علاقه‌مندان به برنامه‌نویسی می‌توانند با کمک فرادرس، زبان C را یاد بگیرند. در پایین چند مورد از فیلم‌های آموزشی زبان C را معرفی کرده‌ایم.

داده از نوع مشتق شده در زبان C

به غیر از انواع بنیادین برنامه نویسی، زبان C از «انواع مشتق شده» (Derived Types) شامل Array-ها، Pointer-ها، Structure-ها و Union-ها نیز پشتیبانی می‌کند. این انواع داده به برنامه‌نویسان برای کارهایی مانند مدیریت داده‌های همگن، دستکاری مستقیم در حافظه کامیپوتر و ساخت ساختارهای داده پیچیده کمک می‌کنند.

دو مورد از مهم‌ترین و خاص‌ترین انواع مشتق‌ شده‌ای که شاید به ندرت در سایر زبان‌ها با آن‌ها آشنا شوید انواع Structure و Union هستند. Structure-ها از جمله ابزارهای مهمی هستند که در زبان‌های برنامه نویسی پیاده‌سازی شده‌اند و برای تولید برنامه‌های پیشرفته با کاربردهای مختلف، ضروری هستند. برای اینکه در کار با این دست از انواع داده در زبان C به خوبی مسلط شوید، پیشنهاد می‌کنیم که فیلم آموزش رایگان ساختار Structure و یونیون Union در برنامه نویسی C را از فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک مربوط به فیلم را در پایین نیز قرار داده‌ایم.

در ادامه تمام موارد معرفی شده در بالا را به ترتیب بررسی کرده‌ایم.

کامپیوتر روشنی که محیط کدنویسی را نشان می‌دهد. - انواع داده در زبان C

داده از نوع Array

نوع «آرایه» (Array)، نوع مشتق شده‌ای است که به برنامه نویسان برای ذخیره توالی از عناصر یکسان با اندازه ثابت، کمک می‌کند. نوع آرایه در زبان برنامه نویسی C مکانیزمی را برای جمع‌آوری چند مقدار مختلف، با نوع یکسان و تحت نام مشترک فراهم می‌کند.

برای دسترسی به عناصر آرایه در زبان C از اندیس‌ها استفاده می‌کنیم. همیشه اندیس اولین عنصر در آرایه برابر با «۰» است. اندازه آرایه‌ها در زمان تعریف، تعیین شده و در طول زمان اجرای برنامه قابل تغییر نیست. عناصر آرایه در حافظه کامیپوتر هم به صورت یکجا و چسبیده بهم ذخیره می‌شوند.

در کادر پایین، مثالی برای تعریف و استفاده از آرایه‌ها را به زبان C پیاده‌سازی کرده‌ایم.

بعد از اجرای کد بالا، خروجی زیر تولید شده و به کاربر نمایش داده می‌شود.

Values in the array: 10 20 30 40 50

داده از نوع Pointer

نوع Pointer، نوع مشتق شده‌ای است که آدرس مقدارهای انواع مختلف را در حافظه ذخیره می‌کند. وقتی که «اشاره‌گر» (Pointer) تعریف می‌شود، ابتدا داده‌ای را مشخص می‌کنیم که Pointer مورد نظر باید به آن اشاره کند. یعنی آدرس آن را در حافظه ذخیره کند. سپس نام متغیر مورد نظر را همراه با علامت ستاره *  در ادامه قرار می‌دهیم.

استفاده از Pointer به برنامه نویسان، دسترسی غیرمستقیم و توانایی اعمال تغییرات در محتوای متغیر مورد را می‌دهد. زیرا به صورت مستقیم به آدرس حافظه‌ای اشاره می‌کند که متغیر مورد نظر در آنجا قرار دارد. از اشاره‌گرها به شکل متداول در مسائلی مانند «اشاره‌گرهای تابعی» (Function Pointers)، ساختمان داده و «تخصیص حافظه پویا» (Dynamic Memory Allocation) استفاده می‌‌شود. این ابزار‌های کمک بسیار زیادی به مدیریت حافظه در برنامه نویسی با زبان C می‌کنند.

در کادر زیر مثالی درباره روش تعریف و استفاده از اشاره‌گرها در زبان برنامه نویسی C را پیاده‌سازی کرده‌ایم.

بعد از اجرای کد بالا، خروجی زیر تولید شده و به کاربر نمایش داده می‌شود.

Value of num: 42

از Pointer-ها برای نگهداری آدرس متغیرها استفاده می‌‌شود. هر چند در زبان C متغیرهای مختلفی وجود دارند. برنامه نویسان حرفه‌ای این زبان برای مدیریت هرچه بهتر برنامه‌ها و کدهای خود باید به شکل بسیار خوبی بر روی کار با انواع متغیر در زبان C مسلط شوند. به منظور آشنایی با این متغیرها می‌توانید مطلب انواع متغیر در زبان C، به زبان ساده با مثال و کد را از مجله فرادرس مطالعه کنید.

داده از نوع Structure

یکی از انواع داده در زبان C همین نوع Structure است. این نوع زیرمجموعه انواع مشتق شده‌ بوده و در ساخت انواع داده ترکیبی کمک می‌کند. یعنی اینکه با استفاده از نوع Structure می‌توانیم انواع داده مختلف را با هم ترکیب کرده و تحت نام مشترک و به شکل نوع جدیدی به کار ببریم. با استفاده از Structure-ها و از طریق ترکیب متغیرهایی با انواع مختلف، می‌توانیم ساختمان داده و نوع منحصر به فرد خودمان را ایجاد کنیم.

  1. به متغیرهای درون هر «ساختار» (Structure)، عضو یا فیلد می‌گویند.
  2. هر نوعی، حتی خود ساختارها هم می‌توانند عضوی از ساختار بزرگتری باشند.
  3. اعضای درون ساختار با استفاده از عملگر نقطه . قابل دسترسی هستند.

در کدهای زیر مثالی از تعریف و استفاده از نوع «ساختار» (Structure) فرضی را نمایش داده‌ایم.

بعد از اجرای کد بالا، خروجی زیر تولید شده و به کاربر نمایش داده می‌شود.

Name: John Doe
Age: 30
Height: 1.80

نوع Union

نوع Union یکی دیگر از انواع داده در زبان C است که در دسته، داده‌های مشتق شده جای می‌گیرد. این نوع به برنامه‌نویسان کمک می‌کند که انواع مختلف را در کنار هم و در آدرس حافظه یکسانی ذخیره کنند. برعکس Structure-ها که هر عضوی فضای جداگانه‌ای در حافظه را به خود اختصاص داده بود، تمام اعضای متعلق به Union یکسان، از فضای حافظه مشترکی استفاده می‌کنند. هر مقدار در هر لحظه فقط توسط یکی از انواع عضو Union قابل نگهداری است. اگر بخواهیم از انواع مختلفی نگهداری کنیم که در هر لحظه فقط داده مربوط به یکی از آن‌ها به کار برده می‌شود، استفاده از نوع Union بسیار مفید خواهد بود. مانند نوع Structure، با استفاده از عملگر نقطه . می‌توانیم به اعضای هر Union تعریف شده دسترسی داشته باشیم.

زمینه آبی رنگ همراه با المان‌های مفهومی برنامه نویسی - انواع داده در زبان C

در کدهای پایین مثالی از نحوه تعریف و استفاده نوع Union را پیاده‌سازی کرده‌ایم.

بعد از اجرای کد بالا، خروجی زیر تولید شده و به کاربر نمایش داده می‌شود.

Integer Value: 42
Float Value: 3.14

انواع شمارش شده

یکی از خاص‌ترین موارد در بین انواع داده در زبان C، «نوع شمارش شده» (Enumeration Data Type) یا سرشماری شده است. با استفاده از نوع Enumeration در زبان C می‌توان، مجموعه‌ای از ثابت‌های نام‌گذاری شده را تعریف کرد که بهم مرتبط هستند. این ثابت‌ها با نام «شمارنده» (Enumerator) شناخته می‌‌شوند. برنامه نویسان می‌توانند از این ثابت‌های نام‌گذاری شده به‌جای اعداد ساده و معمولی استفاده کنند. به دلیل اختصاص دادن نام‌های معنادار به مقادیر Integer، خوانایی کدها بیشتر از قبل شده و فرایند نگهداری آن‌ها ساده‌تر نیز می‌شود.

در کادر زیر، مثالی درباره روش ساخت و استفاده از نوع Enumeration در زبان C را پیاده‌سازی کرده‌ایم. برای تعریف متغیرهای این نوع، قبل از نام متغیر مورد نظر باید از کلمه کلیدی enum  استفاده کنیم.

بعد از اجرای کد بالا و با توجه به اینکه امروز را Wednesday  - معادل چهارشنبه – در نظر گرفته‌ایم، خروجی زیر تولید شده و به کاربر نمایش داده می‌شود.

Today is 2

آشنایی و آموزش کار با زبان های برنامه نویسی مختلف

با اینکه زبان C یکی از مشهور‌ترین زبان‌های برنامه‌ نویسی بوده و تعداد زیادی از دیگر زبان‌ها فرایند تولد و رشد خود را مدیون آن هستند. اما زبان‌های برنامه نویسی دیگری نیز وجود دارند که آموزش آن‌ها هم می‌تواند باعث پیدا کردن شغل یا سرگرمی جدیدی شود. مهمترین مطلب این است که مبحث مورد علاقه خود را یافته و تکنولوژی‌ها و مفاهیم آن حوزه را بیاموزیم. وب‌سایت آموزشی فرادرس، تلاش کرده که تا حد ممکن تمام زبان‌ها و حوزه‌های تکنولوژیکی مختلف را پوشش دهد. برای زبان‌های مختلف با کمک بهترین اساتید، فیلم‌های آموزشی تهیه کرده است. بنابراین بیشتر نیاز جویندگان علم در فرادرس پاسخ داده می‌شود.

مجموعه آموزش برنامه نویسی – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی از مقدماتی تا پیشرفته هدایت شوید.

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

نوع Void در زبان C

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

  • در زمانی که تابع هیچ خروجی ندارد.
  • در زمانی که تابع هیچ پارامتر ورودی دریافت نمی‌کند.
  • و در زمانی که می‌خواهیم انواع آدرس‌ها را در Pointer-ها ذخیره کنیم.

در ادامه مطلب روش و دلیل استفاده از نوع Void را در موارد بالا یک به یک بیان کرده‌ایم.

انواع برگشت داده شده از تابع

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

برای مثال می‌توانید به تابع Void تعریف شده در پایین توجه کنید.

پارامترهای دریافتی توسط تابع

پارامترهای Void نشان می‌دهند که تابع مورد نظر هیچ پارامتر ورودی را دریافت نمی‌کند. در کد زیر، سینتکس مربوط به تعریف این نوع از توابع را نیز نمایش داده‌ایم.

نوع Void در Pointer-ها

در Pointer-هایی که از نوع Void هستند، هر آدرسی را می‌توان ذخیره کرد. Pointer-های Void به عنوان «اشاره‌گر سراسری» (Universal Pointer) نیز شناخته می‌شوند. این تکنیک، روشی برای کار با اشاره‌گرهایی فراهم کرده که به انواع مبهم یا غیرعادی اشاره می‌کنند.

در زمان تعریف توابع خاصی، استفاده از نوع Void بسیار کاربردی است. این توابع ویژگی‌هایی دارند که در پایین فهرست کرده‌ایم.

  • توابعی که هیچ آرگومانی نمی‌پذیرند.
  • توابعی که هیچ مقداری به بیرون برنمی‌گردانند.
  • یا توابعی که با «اشاره‌گرهای عمومی» (Generic Pointers) کار می‌کنند.

توجه: هیچ متغیری نمی‌توانید با نوع Void تعریف شود.

در کد زیر، مثالی از استفاده نوع Void در موقعیت‌های مختلف را پیاده‌سازی کرده‌ایم.

بعد از اجرای کد بالا، خروجی زیر تولید شده و به کاربر نمایش داده می‌شود.

Hello, world!
Processing input...
Value of number: 10

جمع‌بندی

وجود انواع داده در زبان C ضروری است، زیرا این ویژگی‌ها، داده‌هایی را مشخص می‌کنند که هر متغیر می‌تواند ذخیره کند. همچنین این نوع‌ها اندازه و شکل مقدار مورد نظر را معین کرده و با این روش به کامپایلر برای تخصیص حافظه و اجرای صحیح عملیات بر روی این مقادیر کمک می‌کنند. انواع داده در زبان C را می‌توان به چهار دسته کلی «انواع پایه» (Basic Data Types)، «انواع مشتق شده» (Derived Data Types)، نوع «سرشماری شده» (Enumeration) و نوع Void تقسیم کرد.

درک این نوع‌ها عامل بهینه‌سازی شدن فرایند استفاده از حافظه کامپیوتر شده و از بروز خطاهایی مانند سرریز در حافظه جلوگیری می‌کند. استفاده از انواع مختلف باعث بیشتر شدن خوانایی کدها و ساده‌تر شدن نگهداری از برنامه نیز می‌شود. به همین دلیل در این مطلب از مجله فرادرس با انواع مختلف داده در زبان C آشنا شده و هر کدام را با مثال‌های ساده‌ای بررسی کردیم.

source

توسط expressjs.ir